-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Appveyor infrastructure setup thanks to Ogrisel's work
- Loading branch information
stonebig
committed
Apr 14, 2015
1 parent
abeae37
commit cb612d7
Showing
6 changed files
with
300 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
environment: | ||
|
||
global: | ||
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the | ||
# /E:ON and /V:ON options are not enabled in the batch script intepreter | ||
# See: http://stackoverflow.com/a/13751649/163740 | ||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_compiler.cmd" | ||
|
||
matrix: | ||
- PYTHON: "C:\\Python27" | ||
PYTHON_VERSION: "2.7.9" | ||
PYTHON_ARCH: "32" | ||
- PYTHON: "C:\\Python34" | ||
PYTHON_VERSION: "3.4.3" | ||
PYTHON_ARCH: "32" | ||
|
||
init: | ||
- "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%" | ||
|
||
install: | ||
- "powershell .\\appveyor\\install.ps1" | ||
|
||
# Prepend newly installed Python to the PATH of this build (this cannot be | ||
# done from inside the powershell script as it would require to restart | ||
# the parent CMD process). | ||
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" | ||
|
||
# Check that we have the expected version and architecture for Python | ||
- "python --version" | ||
- "python -c \"import struct; print(struct.calcsize('P') * 8)\"" | ||
|
||
# Install the build dependencies of the project. If some dependencies contain | ||
# compiled extensions and are not provided as pre-built wheel packages, | ||
# pip will build them from source using the MSVC compiler matching the | ||
# target Python version and architecture | ||
- "pip install nose" | ||
- "%WITH_COMPILER% python setup.py bdist_wheel" | ||
- pip install --pre --no-index --find-links dist/ sqlite_bro | ||
|
||
build: false # Not a C# project, build stuff at the test step instead. | ||
|
||
test_script: | ||
# Build the compiled extension and run the project tests | ||
- "nosetests -v sqlite_bro" | ||
|
||
after_test: | ||
# If tests are successful, create a whl package for the project. | ||
# - "%CMD_IN_ENV% python setup.py bdist_wheel bdist_wininst" | ||
- ps: "ls dist" | ||
|
||
artifacts: | ||
# Archive the generated wheel package in the ci.appveyor.com build report. | ||
- path: dist\* | ||
|
||
#on_success: | ||
# - TODO: upload the content of dist/*.whl to a public wheelhouse | ||
# |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
# Sample script to install Python and pip (and wheel) under Windows | ||
# Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner | ||
# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ | ||
|
||
$MINICONDA_URL = "http://repo.continuum.io/miniconda/" | ||
$BASE_URL = "https://www.python.org/ftp/python/" | ||
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" | ||
$GET_PIP_PATH = "C:\get-pip.py" | ||
|
||
|
||
function DownloadPython ($python_version, $platform_suffix) { | ||
$webclient = New-Object System.Net.WebClient | ||
$filename = "python-" + $python_version + $platform_suffix + ".msi" | ||
$url = $BASE_URL + $python_version + "/" + $filename | ||
|
||
$basedir = $pwd.Path + "\" | ||
$filepath = $basedir + $filename | ||
if (Test-Path $filename) { | ||
Write-Host "Reusing" $filepath | ||
return $filepath | ||
} | ||
|
||
# Download and retry up to 4 times in case of network transient errors. | ||
Write-Host "Downloading" $filename "from" $url | ||
$retry_attempts = 3 | ||
for($i=0; $i -lt $retry_attempts; $i++){ | ||
try { | ||
$webclient.DownloadFile($url, $filepath) | ||
break | ||
} | ||
Catch [Exception]{ | ||
Start-Sleep 1 | ||
} | ||
} | ||
if (Test-Path $filepath) { | ||
Write-Host "File saved at" $filepath | ||
} else { | ||
# Retry once to get the error message if any at the last try | ||
$webclient.DownloadFile($url, $filepath) | ||
} | ||
return $filepath | ||
} | ||
|
||
|
||
function InstallPython ($python_version, $architecture, $python_home) { | ||
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home | ||
if (Test-Path $python_home) { | ||
Write-Host $python_home "already exists, skipping." | ||
return $false | ||
} | ||
if ($architecture -eq "32") { | ||
$platform_suffix = "" | ||
} else { | ||
$platform_suffix = ".amd64" | ||
} | ||
$msipath = DownloadPython $python_version $platform_suffix | ||
Write-Host "Installing" $msipath "to" $python_home | ||
$install_log = $python_home + ".log" | ||
$install_args = "/qn /log $install_log /i $msipath TARGETDIR=$python_home" | ||
$uninstall_args = "/qn /x $msipath" | ||
RunCommand "msiexec.exe" $install_args | ||
if (-not(Test-Path $python_home)) { | ||
Write-Host "Python seems to be installed else-where, reinstalling." | ||
RunCommand "msiexec.exe" $uninstall_args | ||
RunCommand "msiexec.exe" $install_args | ||
} | ||
if (Test-Path $python_home) { | ||
Write-Host "Python $python_version ($architecture) installation complete" | ||
} else { | ||
Write-Host "Failed to install Python in $python_home" | ||
Get-Content -Path $install_log | ||
Exit 1 | ||
} | ||
} | ||
|
||
function RunCommand ($command, $command_args) { | ||
Write-Host $command $command_args | ||
Start-Process -FilePath $command -ArgumentList $command_args -Wait -Passthru | ||
} | ||
|
||
|
||
function InstallPip ($python_home) { | ||
$pip_path = $python_home + "\Scripts\pip.exe" | ||
$python_path = $python_home + "\python.exe" | ||
if (-not(Test-Path $pip_path)) { | ||
Write-Host "Installing pip..." | ||
$webclient = New-Object System.Net.WebClient | ||
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH) | ||
Write-Host "Executing:" $python_path $GET_PIP_PATH | ||
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru | ||
} else { | ||
Write-Host "pip already installed." | ||
} | ||
} | ||
|
||
|
||
function DownloadMiniconda ($python_version, $platform_suffix) { | ||
$webclient = New-Object System.Net.WebClient | ||
if ($python_version -eq "3.4") { | ||
$filename = "Miniconda3-3.5.5-Windows-" + $platform_suffix + ".exe" | ||
} else { | ||
$filename = "Miniconda-3.5.5-Windows-" + $platform_suffix + ".exe" | ||
} | ||
$url = $MINICONDA_URL + $filename | ||
|
||
$basedir = $pwd.Path + "\" | ||
$filepath = $basedir + $filename | ||
if (Test-Path $filename) { | ||
Write-Host "Reusing" $filepath | ||
return $filepath | ||
} | ||
|
||
# Download and retry up to 4 times in case of network transient errors. | ||
Write-Host "Downloading" $filename "from" $url | ||
$retry_attempts = 3 | ||
for($i=0; $i -lt $retry_attempts; $i++){ | ||
try { | ||
$webclient.DownloadFile($url, $filepath) | ||
break | ||
} | ||
Catch [Exception]{ | ||
Start-Sleep 1 | ||
} | ||
} | ||
if (Test-Path $filepath) { | ||
Write-Host "File saved at" $filepath | ||
} else { | ||
# Retry once to get the error message if any at the last try | ||
$webclient.DownloadFile($url, $filepath) | ||
} | ||
return $filepath | ||
} | ||
|
||
|
||
function InstallMiniconda ($python_version, $architecture, $python_home) { | ||
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home | ||
if (Test-Path $python_home) { | ||
Write-Host $python_home "already exists, skipping." | ||
return $false | ||
} | ||
if ($architecture -eq "32") { | ||
$platform_suffix = "x86" | ||
} else { | ||
$platform_suffix = "x86_64" | ||
} | ||
$filepath = DownloadMiniconda $python_version $platform_suffix | ||
Write-Host "Installing" $filepath "to" $python_home | ||
$install_log = $python_home + ".log" | ||
$args = "/S /D=$python_home" | ||
Write-Host $filepath $args | ||
Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru | ||
if (Test-Path $python_home) { | ||
Write-Host "Python $python_version ($architecture) installation complete" | ||
} else { | ||
Write-Host "Failed to install Python in $python_home" | ||
Get-Content -Path $install_log | ||
Exit 1 | ||
} | ||
} | ||
|
||
|
||
function InstallMinicondaPip ($python_home) { | ||
$pip_path = $python_home + "\Scripts\pip.exe" | ||
$conda_path = $python_home + "\Scripts\conda.exe" | ||
if (-not(Test-Path $pip_path)) { | ||
Write-Host "Installing pip..." | ||
$args = "install --yes pip" | ||
Write-Host $conda_path $args | ||
Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru | ||
} else { | ||
Write-Host "pip already installed." | ||
} | ||
} | ||
|
||
function InstallPackage ($python_home, $pkg) { | ||
# new function added from pipa | ||
$pip_path = $python_home + "\Scripts\pip.exe" | ||
& $pip_path install $pkg | ||
} | ||
|
||
function main () { | ||
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON | ||
InstallPip $env:PYTHON | ||
# added from pipa | ||
InstallPackage $env:PYTHON wheel | ||
} | ||
|
||
main |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
:: To build extensions for 64 bit Python 3, we need to configure environment | ||
:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: | ||
:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) | ||
:: | ||
:: To build extensions for 64 bit Python 2, we need to configure environment | ||
:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: | ||
:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) | ||
:: | ||
:: 32 bit builds do not require specific environment configurations. | ||
:: | ||
:: Note: this script needs to be run with the /E:ON and /V:ON flags for the | ||
:: cmd interpreter, at least for (SDK v7.0) | ||
:: | ||
:: More details at: | ||
:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows | ||
:: http://stackoverflow.com/a/13751649/163740 | ||
:: | ||
:: Author: Olivier Grisel | ||
:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ | ||
@ECHO OFF | ||
|
||
SET COMMAND_TO_RUN=%* | ||
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows | ||
|
||
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%" | ||
IF %MAJOR_PYTHON_VERSION% == "2" ( | ||
SET WINDOWS_SDK_VERSION="v7.0" | ||
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( | ||
SET WINDOWS_SDK_VERSION="v7.1" | ||
) ELSE ( | ||
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" | ||
EXIT 1 | ||
) | ||
|
||
IF "%PYTHON_ARCH%"=="64" ( | ||
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture | ||
SET DISTUTILS_USE_SDK=1 | ||
SET MSSdk=1 | ||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% | ||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release | ||
ECHO Executing: %COMMAND_TO_RUN% | ||
call %COMMAND_TO_RUN% || EXIT 1 | ||
) ELSE ( | ||
ECHO Using default MSVC build environment for 32 bit architecture | ||
ECHO Executing: %COMMAND_TO_RUN% | ||
call %COMMAND_TO_RUN% || EXIT 1 | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# from pyappveyordemo.extension import some_function | ||
from nose.tools import assert_equal | ||
|
||
|
||
def test_DeBase(): | ||
"learning the ropes" | ||
assert_equal(1 == 1) |