Skip to content

Commit

Permalink
add appveyor for Windows wheels
Browse files Browse the repository at this point in the history
  • Loading branch information
charlesll committed Jun 18, 2018
1 parent ba599a3 commit 8a22b86
Show file tree
Hide file tree
Showing 45 changed files with 121 additions and 1 deletion.
121 changes: 121 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# 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_32: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin
MINGW_64: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin
APPVEYOR_SAVE_CACHE_ON_ERROR: true
APPVEYOR_SKIP_FINALIZE_ON_EXIT: true
TEST_TIMEOUT: 1000
NPY_NUM_BUILD_JOBS: 4

matrix:
- PYTHON: C:\Python34-x64
PYTHON_VERSION: 3.4
PYTHON_ARCH: 64
TEST_MODE: fast

- PYTHON: C:\Python36
PYTHON_VERSION: 3.6
PYTHON_ARCH: 32
TEST_MODE: fast

- PYTHON: C:\Python27-x64
PYTHON_VERSION: 2.7
PYTHON_ARCH: 64
TEST_MODE: fast

- PYTHON: C:\Python36-x64
PYTHON_VERSION: 3.6
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) { `
raise "There are newer queued builds for this pull request, skipping build."
}

install:
# 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%
- if [%PYTHON_ARCH%]==[32] SET PATH=%MINGW_32%;%PATH%
- if [%PYTHON_ARCH%]==[64] SET PATH=%MINGW_64%;%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, )"
# Upgrade to the latest pip and numpy.
- 'python -m pip install -U pip setuptools wheel numpy'

build_script:
# Here, we add MinGW to the path to be able to link an GCVSPLINE.dll
# We then use the import library from the DLL to compile with MSVC
- ps: |
pip wheel -v -v -v --wheel-dir=dist .
# For each wheel that pip has placed in the "dist" directory
# First, upload the wheel to the "artifacts" tab and then
# install the wheel. If we have only built numpy (as is the case here),
# then there will be one wheel to install.
# This method is more representative of what will be distributed,
# because it actually tests what the built wheels will be rather than
# what 'setup.py install' will do and at it uploads the wheels so that
# they can be inspected.
ls dist -r | Foreach-Object {
Push-AppveyorArtifact $_.FullName
pip install $_.FullName
}
test_script:
python runtests.py -v -n -m %TEST_MODE% -- --junitxml=%cd%\junit-results.xml

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:
# We can get a nice display of test results in the "test" tab with py.test
# For now, this does nothing.
- 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
Empty file modified .gitignore
100644 → 100755
Empty file.
Empty file modified .travis.yml
100644 → 100755
Empty file.
Empty file modified LICENSE
100644 → 100755
Empty file.
Empty file modified MANIFEST
100644 → 100755
Empty file.
Empty file modified MANIFEST.in
100644 → 100755
Empty file.
Empty file modified NEWS.md
100644 → 100755
Empty file.
Empty file modified README.md
100644 → 100755
Empty file.
Empty file modified docs/index.md
100644 → 100755
Empty file.
Empty file modified example/.ipynb_checkpoints/gcvspline2-checkpoint.ipynb
100644 → 100755
Empty file.
Empty file.
Empty file.
Empty file modified example/gcvspline_fortran_interface.py
100644 → 100755
Empty file.
Empty file modified gcvspline/__init__.py
100644 → 100755
Empty file.
Empty file modified gcvspline/gcvspl.f
100644 → 100755
Empty file.
Empty file modified gcvspline/gcvspline.py
100644 → 100755
Empty file.
Empty file modified gcvspline/gcvspline2.py
100644 → 100755
Empty file.
1 change: 0 additions & 1 deletion gcvspline/tests/.#__init__.py

This file was deleted.

Empty file modified gcvspline/tests/__init__.py
100644 → 100755
Empty file.
Empty file modified gcvspline/tests/test_gcvspline.py
100644 → 100755
Empty file.
Empty file modified gcvspline/tests/test_gcvspline2.py
100644 → 100755
Empty file.
Empty file modified mkdocs.yml
100644 → 100755
Empty file.
Empty file modified runtests.py
100644 → 100755
Empty file.
Empty file modified sav/Example.rst
100644 → 100755
Empty file.
Empty file modified sav/Gcvspline.rst
100644 → 100755
Empty file.
Empty file modified sav/index.rst
100644 → 100755
Empty file.
Empty file modified setup.py
100644 → 100755
Empty file.
Empty file modified site/404.html
100644 → 100755
Empty file.
Empty file modified site/assets/images/favicon.ico
100644 → 100755
Empty file.
Empty file modified site/assets/images/icons/bitbucket-670608a71a.svg
100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified site/assets/images/icons/github-1da075986e.svg
100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified site/assets/images/icons/gitlab-5ad3f9f9e5.svg
100644 → 100755
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified site/assets/javascripts/application-06a3e72efd.js
100644 → 100755
Empty file.
Empty file modified site/assets/javascripts/modernizr-1df76c4e58.js
100644 → 100755
Empty file.
Empty file modified site/assets/stylesheets/application-e2807e330f.css
100644 → 100755
Empty file.
Empty file modified site/assets/stylesheets/application-f78e5cb881.palette.css
100644 → 100755
Empty file.
Empty file modified site/index.html
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/lunr.min.js
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/mustache.min.js
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/require.js
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/search-results-template.mustache
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/search.js
100644 → 100755
Empty file.
Empty file modified site/mkdocs/js/text.js
100644 → 100755
Empty file.
Empty file modified site/mkdocs/search_index.json
100644 → 100755
Empty file.
Empty file modified site/sitemap.xml
100644 → 100755
Empty file.

0 comments on commit 8a22b86

Please sign in to comment.