Permalink
Cannot retrieve contributors at this time
# As config was originally based on an example by Olivier Grisel. Thanks! | |
# https://github.com/ogrisel/python-appveyor-demo/blob/master/appveyor.yml | |
clone_depth: 50 | |
# No reason for us to restrict the number concurrent jobs | |
max_jobs: 100 | |
cache: | |
- '%LOCALAPPDATA%\pip\Cache' | |
environment: | |
global: | |
MINGW_64: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin | |
NUMPY_HEAD: https://github.com/numpy/numpy.git | |
NUMPY_BRANCH: master | |
APPVEYOR_SAVE_CACHE_ON_ERROR: true | |
APPVEYOR_SKIP_FINALIZE_ON_EXIT: true | |
TEST_TIMEOUT: 1000 | |
matrix: | |
- PYTHON: C:\Python37-x64 | |
PYTHON_VERSION: 3.7 | |
PYTHON_ARCH: 64 | |
TEST_MODE: full | |
init: | |
- "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%" | |
- "ECHO \"%APPVEYOR_SCHEDULED_BUILD%\"" | |
# If there is a newer build queued for the same PR, cancel this one. | |
# The AppVeyor 'rollout builds' option is supposed to serve the same | |
# purpose but it is problematic because it tends to cancel builds pushed | |
# directly to master instead of just PR builds (or the converse). | |
# credits: JuliaLang developers. | |
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` | |
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` | |
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` | |
Write-Host "There are newer queued builds for this pull request, skipping build." | |
Exit-AppveyorBuild | |
} | |
- ps: | | |
If (($env:SKIP_NOTAG -eq "true") -and ($env:APPVEYOR_REPO_TAG -ne "true")) { | |
Write-Host "Skipping build, not at a tag." | |
Exit-AppveyorBuild | |
} | |
install: | |
- C:\cygwin\bin\du -hs "%LOCALAPPDATA%\pip\Cache" | |
# 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 | |
- >- | |
%CMD_IN_ENV% | |
python -c "import sys,platform,struct; | |
print(sys.platform, platform.machine(), struct.calcsize('P') * 8, )" | |
# Install the BLAS library | |
# - install "openblas.lib" to PYTHON\lib | |
# - install OpenBLAS.dll to MINGW\bin | |
- ps: | | |
$PYTHON_ARCH = $env:PYTHON_ARCH | |
$PYTHON = $env:PYTHON | |
$lib = python tools/openblas_support.py | |
$destination = "$PYTHON\lib\openblas.a" | |
cp $lib $destination | |
ls $destination | |
# Upgrade to the latest pip. | |
- '%CMD_IN_ENV% python -m pip install -U pip "setuptools<50.0" wheel' | |
# Install the scipy test dependencies. | |
- '%CMD_IN_ENV% pip install -U --timeout 5 --retries 2 -r tools/ci/appveyor/requirements.txt' | |
build_script: | |
- ps: | | |
$PYTHON_ARCH = $env:PYTHON_ARCH | |
$MINGW = $env:MINGW_64 | |
$env:Path += ";$MINGW" | |
$env:NPY_NUM_BUILD_JOBS = "4" | |
mkdir dist | |
pip wheel --no-build-isolation -v -v -v --wheel-dir=dist . | |
ls dist -r | Foreach-Object { | |
appveyor PushArtifact $_.FullName | |
pip install $_.FullName | |
} | |
test_script: | |
- python runtests.py -n -m %TEST_MODE% -- -n6 --timeout=%TEST_TIMEOUT% --junitxml=%cd%\junit-results.xml -rfEX | |
after_build: | |
# Remove old or huge cache files to hopefully not exceed the 1GB cache limit. | |
# | |
# If the cache limit is reached, the cache will not be updated (of not even | |
# created in the first run). So this is a trade of between keeping the cache | |
# current and having a cache at all. | |
# NB: This is done only `on_success` since the cache in uploaded only on | |
# success anyway. | |
- C:\cygwin\bin\find "%LOCALAPPDATA%\pip" -type f -mtime +360 -delete | |
- C:\cygwin\bin\find "%LOCALAPPDATA%\pip" -type f -size +10M -delete | |
- C:\cygwin\bin\find "%LOCALAPPDATA%\pip" -empty -delete | |
# Show size of cache | |
- C:\cygwin\bin\du -hs "%LOCALAPPDATA%\pip\Cache" | |
on_finish: | |
- ps: | | |
If (Test-Path .\junit-results.xml) { | |
(new-object net.webclient).UploadFile( | |
"https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", | |
(Resolve-Path .\junit-results.xml) | |
) | |
} | |
$LastExitCode = 0 |