forked from conda/conda-build
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
105 lines (91 loc) · 4.15 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
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 .\\tools\\appveyor\\run_with_env.cmd"
matrix:
- PYTHON: "C:\\Python35_64"
PYTHON_VERSION: "3.5"
PYTHON_ARCH: "64"
- PYTHON: "C:\\Python27_64"
PYTHON_VERSION: "2.7"
PYTHON_ARCH: "64"
- PYTHON: "C:\\Python34_64"
PYTHON_VERSION: "3.4"
PYTHON_ARCH: "64"
- PYTHON: "C:\\Python35_32"
PYTHON_VERSION: "3.5"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python27_32"
PYTHON_VERSION: "2.7"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python34_32"
PYTHON_VERSION: "3.4"
PYTHON_ARCH: "32"
init:
- ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH% %HOME%
install:
# 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) { `
throw "There are newer queued builds for this pull request, failing early." }
# these correspond to folder naming of miniconda installs on appveyor. See
# https://www.appveyor.com/docs/installed-software#python
- if "%PYTHON_VERSION%" == "3.4" set "BASE_PYTHON_VERSION=3"
- if "%PYTHON_VERSION%" == "3.5" set "BASE_PYTHON_VERSION=35"
- if "%PYTHON_ARCH%" == "64" set "ARCH_LABEL=-x64"
# These are already installed on appveyor. Update them.
- set "CONDA_ROOT=C:\Miniconda%BASE_PYTHON_VERSION%%ARCH_LABEL%"
- set "PATH=%CONDA_ROOT%;%CONDA_ROOT%\Scripts;%CONDA_ROOT%\Library\bin;%PATH%"
- conda config --set always_yes yes
- conda update -q conda
- conda info
- conda update -q --all
- python -c "import sys; print(sys.version)"
- python -c "import sys; print(sys.executable)"
- python -c "import sys; print(sys.prefix)"
- conda install -q pip pytest pytest-cov jinja2 patch flake8 mock requests
- conda install -q pyflakes=1.1 pycrypto posix m2-git anaconda-client numpy
- conda install -c conda-forge -q perl
# this is to ensure dependencies
- python --version
- python -c "import struct; print(struct.calcsize('P') * 8)"
- pip install --no-deps .
- pip install pytest-xdist pytest-capturelog pytest-env filelock pkginfo
- set PATH
- conda build --version
- call appveyor\setup_x64.bat
- copy "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat"
# This is an extra repo that we clone for relative path entries
- cmd: pushd .. && git clone https://github.com/conda/conda_build_test_recipe && popd
# Not a .NET project, we build package in the install step instead
build: false
test_script:
- set "PATH=%CONDA_ROOT%;%CONDA_ROOT%\Scripts;%CONDA_ROOT%\Library\bin;%PATH%"
- set PATH
- mkdir C:\cbtmp
- py.test -v --cov conda_build --cov-report xml tests --basetemp C:\cbtmp -n 2
# create a package (this build is done with conda-build from source, and does not test entry points)
- conda build conda.recipe --no-anaconda-upload
# Create a new environment (with underscore, so that conda can be installed), to test entry points
- conda create -n _cbtest python=%PYTHON_VERSION%
- activate _cbtest
- conda render --output conda.recipe > tmpFile
- SET /p fn= < tmpFile
- DEL tmpFile
- conda install %fn%
- pip install filelock
# this build should be done using actual entry points from the package we built above.
- conda build conda.recipe --no-anaconda-upload
on_failure:
- 7z.exe a cbtmp.7z C:\cbtmp
- appveyor PushArtifact cbtmp.7z
on_success:
- pip install codecov
- codecov --env PYTHON_VERSION