forked from SCons/scons
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.appveyor.yml
100 lines (83 loc) · 3.62 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
#version: '3.0.1.{build}'
#
# When planning updates here, check availability at:
# https://www.appveyor.com/docs/windows-images-software/
# This is slow, try to keep the number of builds as low as makes sense.
image:
# linux builds done in Travis CI for now
- Visual Studio 2017
- Visual Studio 2019
- Visual Studio 2022
cache:
- downloads -> appveyor.yml
- '%LOCALAPPDATA%\pip\Cache'
- C:\ProgramData\chocolatey\bin -> appveyor.yml
- C:\ProgramData\chocolatey\lib -> appveyor.yml
install:
# direct choco install supposed to work, but not? still doing in install.bat
#- cinst: dmd ldc swig vswhere ixsltproc winflexbison3
- cmd: .\.appveyor\install.bat
- cmd: if %COVERAGE% equ 1 .\.appveyor\install-cov.bat
# Build matrix will be number of images multiplied by #entries in matrix:,
# less any excludes.
#
# "Build" is kind of a misnomer - we are actually running the test suite,
# and this is slow on Windows, so keep the matrix as small as possible.
# Leaving the Coverage build on VS2017 for build-time reasons (1hr time limit).
# maybe move coverage to github in future to restore some flexibility?
environment:
# set COVERAGE to 1 for any builder that should run it
COVERAGE: 0
SCONS_CACHE_MSVC_CONFIG: "true"
matrix:
# Test oldest and newest supported Pythons, and a subset in between.
# Skipping 3.7 and 3.9 at this time
- WINPYTHON: "Python312"
- WINPYTHON: "Python310"
- WINPYTHON: "Python38"
- WINPYTHON: "Python36"
# remove sets of build jobs based on criteria below
# to fine tune the number and platforms tested
matrix:
exclude:
# test python 3.6 on Visual Studio 2017 image
- image: Visual Studio 2017
WINPYTHON: "Python312"
- image: Visual Studio 2017
WINPYTHON: "Python310"
- image: Visual Studio 2017
WINPYTHON: "Python38"
# test python 3.8 on Visual Studio 2019 image
- image: Visual Studio 2019
WINPYTHON: "Python312"
- image: Visual Studio 2019
WINPYTHON: "Python310"
- image: Visual Studio 2019
WINPYTHON: "Python36"
# test python 3.10 and 3.11 on Visual Studio 2022 image
- image: Visual Studio 2022
WINPYTHON: "Python36"
- image: Visual Studio 2022
WINPYTHON: "Python38"
# Remove some binaries we don't want to be found
# Note this is no longer needed, git-windows bin/ is quite minimal now.
before_build:
- ps: .\.appveyor\ignore_git_bins.ps1
build: off
build_script:
# Image version-based excludes:
# No excludes at the moment, but the exclude script generates the
# (possibly empty) exclude_list.txt which is used in the following step,
# so leave the scheme in place in case we need to put back excludes later.
- ps: .\.appveyor\exclude_tests.ps1
# setup coverage by creating the coverage config file, and adding coverage
# to the sitecustomize so that all python processes start with coverage
- ps: if ($env:COVERAGE -eq 1) { .\.appveyor\coverage_setup.ps1 }
# NOTE: running powershell from cmd is intended because
# it formats the output correctly
- cmd: powershell -Command "& { if($env:COVERAGE -eq 1) { coverage run -p --rcfile=$($env:COVERAGE_PROCESS_START) runtest.py -j 2 -t --exclude-list exclude_list.txt -a } else { C:\\%WINPYTHON%\\python.exe runtest.py -j 2 -t --exclude-list exclude_list.txt -a }; if($LastExitCode -eq 2 -Or $LastExitCode -eq 0) { $host.SetShouldExit(0 )} else {$host.SetShouldExit(1)}}"
# run coverage even if there was a test failure
on_finish:
- ps: if ($env:COVERAGE -eq 1) { .\.appveyor\coverage_report.ps1 }
# running codecov in powershell causes an error so running in cmd
- cmd: if %COVERAGE% equ 1 codecov -X gcov --file coverage_xml.xml