forked from conda/conda-build
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
109 lines (98 loc) · 4.98 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
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:
- SYS_PYTHON: "C:\\Miniconda37-x64"
SYS_PYTHON_VERSION: "3.7"
SYS_PYTHON_ARCH: "64"
CONDA_CANARY: "False"
- SYS_PYTHON: "C:\\Miniconda-x64"
SYS_PYTHON_VERSION: "2.7"
SYS_PYTHON_ARCH: "64"
CONDA_CANARY: "False"
- SYS_PYTHON: "C:\\Miniconda37-x64"
SYS_PYTHON_VERSION: "3.7"
SYS_PYTHON_ARCH: "64"
CONDA_CANARY: "True"
skip_commits:
files:
- docs/*
init:
- ECHO %SYS_PYTHON% %SYS_PYTHON_VERSION% %SYS_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 "%SYS_PYTHON_VERSION%" == "3.7" set "BASE_PYTHON_VERSION=37"
- if "%SYS_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
- if "%CONDA_CANARY%" == "True" (conda update -c conda-canary conda) else (conda update -q conda)
- conda config --set auto_update_conda no
- conda info
- python -c "import sys; print(sys.version)"
- python -c "import sys; print(sys.executable)"
- python -c "import sys; print(sys.prefix)"
- conda update -q --all
- conda install -q pip pytest pytest-cov jinja2 m2-patch flake8 mock requests contextlib2 chardet glob2 perl pyflakes pycrypto posix m2-git anaconda-client numpy beautifulsoup4 pytest-xdist pytest-mock filelock pkginfo psutil pytz tqdm conda-package-handling
- if "%SYS_PYTHON_VERSION%" == "2.7" conda install -q scandir
- if "%SYS_PYTHON_VERSION%" == "3.7" conda install -q py-lief
# this is to ensure dependencies
- python --version
- python -c "import struct; print(struct.calcsize('P') * 8)"
- pip install --no-deps .
- set PATH
- conda build --version
- call ci\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
# cache:
# - C:\\Miniconda3-x64 -> appveyor.yml
# - C:\\Miniconda37-x64 -> appveyor.yml
# - C:\\Miniconda-x64 -> appveyor.yml
# - C:\\Miniconda -> appveyor.yml
test_script:
- set "PATH=%CONDA_ROOT%;%CONDA_ROOT%\Scripts;%CONDA_ROOT%\Library\bin;%PATH%"
- set PATH
- mkdir C:\cbtmp
# unset other language env vars - we only want to test if conda-build sets them itself
- set PERL=
- set LUA=
- set R=
# cache several files to avoid race condition errors
- echo "safety_checks: disabled" >> ~/.condarc
- echo "local_repodata_ttl: 1800" >> ~/.condarc
- conda create -n blarg -yq --download-only python=2.7
- conda create -n blarg -yq --download-only python=3.5
# no libpng here because we already have the right version from the 3.5 install
- conda create -n blarg -yq --download-only python cmake
# remove all folders to avoid permission errors. Leave root files (may have coverage info there)
- for /d %%F in (c:\cbtmp\*) do rd /s /q "%%F"
- py.test --color=yes -v --cov conda_build --cov-report xml --cov-append tests --basetemp C:\cbtmp -n 2 -m "not serial"
# install conda-verify later, so we are ignoring checks in most tests
- conda install -y conda-verify
- py.test --color=yes -v --cov conda_build --cov-report xml tests --basetemp C:\cbtmp -n 0 -m "serial"
# For debugging, this is helpful - zip up the test environment and make it available for later download.
# However, it eats up a fair amount of time. Better to disable until you need it.
# on_failure:
# - 7z.exe a cbtmp.7z C:\cbtmp
# - appveyor PushArtifact cbtmp.7z
on_success:
- pip install codecov
- codecov --env SYS_PYTHON_VERSION --file C:\projects\conda-build\coverage.xml