-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy path.appveyor.yml
152 lines (126 loc) · 5.04 KB
/
.appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
image: Visual Studio 2015
cache:
- '%LOCALAPPDATA%\pip\Cache'
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
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\.ci\\appveyor\\run_with_env.cmd"
BUILD_DOCS: "true"
TEST_NOTEBOOKS: "false"
USE_SIMA: "true"
matrix:
# Versions listed below which are pre-installed on Appveyor will be
# used when available.
# See: https://www.appveyor.com/docs/windows-images-software/#python
# Otherwise, the requested version of Python will be downloaded
# and installed using the script .ci/appveyor/install.ps1
- PYTHON: C:\Python35
PYTHON_VERSION: "3.5.x"
PYTHON_ARCH: "32"
TEST_NOTEBOOKS: "true"
SKIPPABLE: "false"
platform:
- x86
- x64
configuration: Fast
matrix:
fast_finish: true
exclude:
- platform: x86
PYTHON_ARCH: "64"
- platform: x64
PYTHON_ARCH: "32"
- configuration: Fast
SKIPPABLE: "true"
# Here we override common configuration
for:
# Override settings for release branches
-
branches:
only:
- /^v?\d+(\.[x\d]+)+$/
configuration: Release
after_test:
# If tests are successful, create binary packages for the project.
- "%CMD_IN_ENV% python -m pip install --upgrade pip setuptools wheel"
- "%CMD_IN_ENV% python setup.py sdist bdist_wheel --universal"
- "%CMD_IN_ENV% python setup.py bdist_wininst"
# Allow failure on bdist_msi, because it does not work with letters in
# the package version number. Using letters is normal for development
# versions (e.g. 1.3.dev0, 1.3.2rc4), and we don't want to cause Appveyor
# to mark the build to fail because of it. The command will work for your
# release versions if their version numbers are only numeric (e.g. 1.3.2).
- "%CMD_IN_ENV% python setup.py bdist_msi || ver>nul"
- ps: ls dist
artifacts:
# Archive the generated packages in the ci.appveyor.com build report.
- path: dist\*
init:
- ECHO "init"
install:
- ECHO "Filesystem root:"
- ps: ls "C:/"
- ECHO "Installed SDKs:"
- ps: |
If (Test-Path "C:/Program Files/Microsoft SDKs/Windows") {
ls "C:/Program Files/Microsoft SDKs/Windows"
}
# Install Python (from the official .msi of https://python.org) and pip when
# not already installed.
- ps: if (-not(Test-Path($env:PYTHON))) { & .ci\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
- >-
%CMD_IN_ENV%
python -c "import sys,platform,struct;
print(sys.platform, platform.machine(), struct.calcsize('P') * 8, )"
# Upgrade to the latest version of pip, setuptools, wheel
- "%CMD_IN_ENV% python -m pip install --upgrade pip setuptools wheel"
# Show current directory contents
- ECHO "Current directory:"
- ps: ls
# Show PATH variable
- ECHO "PATH:"
- ECHO "%PATH%"
# 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
- "%CMD_IN_ENV% python -m pip install --editable .[test]"
- IF "%BUILD_DOCS%"=="true" ( %CMD_IN_ENV% python -m pip install --editable .[docs] )
# Conditionally install the packages which are needed for plotting
# Also, tell matplotlib to use the agg backend and not X server
- IF "%TEST_NOTEBOOKS%"=="true" ( SET "MPLBACKEND=agg" )
- IF "%TEST_NOTEBOOKS%"=="true" ( %CMD_IN_ENV% python -m pip install --editable .[plotting] )
- IF "%USE_SIMA%"=="true" ( %CMD_IN_ENV% python -m pip install sima ) ELSE ( DEL examples\*SIMA* examples\*sima* )
build: false
test_script:
# Run the project tests and store results in testresults.xml log
- "%CMD_IN_ENV% python -m pytest --cov=fissa --cov-report term --cov-report xml --cov-config .coveragerc --junitxml=testresults.xml"
# Check documentation can be built
- cd docs
- IF "%BUILD_DOCS%"=="true" ( make.bat html )
- cd ..
# Check notebooks can be run
- IF "%TEST_NOTEBOOKS%"=="true" ( %CMD_IN_ENV% python -m pytest --nbsmoke-run ./examples/ )
- IF "%TEST_NOTEBOOKS%"=="true" ( %CMD_IN_ENV% python -m pytest --nbsmoke-lint ./examples/ )
on_success:
# Push coverage reports
- '%CMD_IN_ENV% python -m pip install codecov'
- '%CMD_IN_ENV% python -m codecov -f coverage.xml || echo "Codecov push failed" && ver>nul'
on_finish:
# Upload test results to AppVeyor
- ps: |
If (Test-Path .\testresults.xml) {
(new-object net.webclient).UploadFile(
"https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)",
(Resolve-Path .\testresults.xml)
)
}
$LastExitCode = 0