forked from python-trio/trio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
132 lines (121 loc) Β· 3.9 KB
/
azure-pipelines.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
# Will want to adjust this if we ever start having non-master branches
# in the main repo:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers
trigger:
- master
jobs:
# Special job that uses a container to check we work on the latest
# tippy-tip ubuntu. The main thing this adds is openssl 1.1.1/TLS 1.3.
#
# Azure has fancy stuff to let you run directly inside a container:
#
# https://docs.microsoft.com/en-us/azure/devops/pipelines/process/container-phases
#
# Unfortunately it's useless for us. Azure carefully sets everything
# up so that you run as a non-root user, but can sudo to get root. But
# the standard images that docker maintains like 'ubuntu' or 'debian'
# don't have sudo installed, which means that if you use 'container:
# ubuntu:rolling' then you simply cannot get root. And it's definitely
# not worth maintaining our own container image just so we can
# preinstall sudo:
#
# https://github.com/MicrosoftDocs/vsts-docs/issues/2939
- job: "py37_latest_ubuntu"
pool:
vmImage: "ubuntu-16.04"
timeoutInMinutes: 10
steps:
# This actually reveals the CODECOV_TOKEN in the logs, but
# AFAICT the only thing the token lets you do is upload coverage
# reports, which doesn't seem like a very tempting target for
# malicious hackers.
- bash: |
set -ex
env | sort
sudo docker run -e SYSTEM_JOBIDENTIFIER="$SYSTEM_JOBIDENTIFIER" -e CODECOV_TOKEN="$CODECOV_TOKEN" -v "$PWD:/t" ubuntu:rolling /bin/bash -c "set -ex; cd /t; apt update; apt install -y python3.7-dev python3-virtualenv git build-essential curl; python3.7 -m virtualenv -p python3.7 venv; source venv/bin/activate; source ci/ci.sh"
- job: 'Windows'
pool:
vmImage: 'vs2017-win2016'
timeoutInMinutes: 10
strategy:
# Python version list:
# 64-bit: https://www.nuget.org/packages/python/
# 32-bit: https://www.nuget.org/packages/pythonx86/
matrix:
"Python 3.5, 32 bit":
python.version: '3.5.4'
python.pkg: 'pythonx86'
"Python 3.5, 64 bit":
python.version: '3.5.4'
python.pkg: 'python'
"Python 3.6, 32 bit":
python.version: '3.6.8'
python.pkg: 'pythonx86'
"Python 3.6, 64 bit":
python.version: '3.6.8'
python.pkg: 'python'
"Python 3.7, 32 bit":
python.version: '3.7.2'
python.pkg: 'pythonx86'
"Python 3.7, 64 bit":
python.version: '3.7.2'
python.pkg: 'python'
steps:
- task: NuGetToolInstaller@0
- bash: ci/ci.sh
displayName: "Run the actual tests"
- task: PublishTestResults@2
inputs:
testResultsFiles: 'test-results.xml'
testRunTitle: 'Windows $(python.pkg) $(python.version)'
condition: succeededOrFailed()
# Currently broken for unclear reasons probably related to openssl v1.1.1:
# https://github.com/python-trio/trio/pull/827#issuecomment-457139883
#
# - job: 'Linux'
# pool:
# vmImage: 'ubuntu-16.04'
# timeoutInMinutes: 10
# strategy:
# matrix:
# "Python 3.5":
# python.version: '3.5'
# "Python 3.6":
# python.version: '3.6'
# "Python 3.7":
# python.version: '3.7'
#
# steps:
# - task: UsePythonVersion@0
# inputs:
# versionSpec: '$(python.version)'
#
# - bash: ci/ci.sh
# displayName: "Run the actual tests"
#
# - task: PublishTestResults@2
# inputs:
# testResultsFiles: 'test-results.xml'
# condition: succeededOrFailed()
- job: 'macOS'
pool:
vmImage: 'macOS-10.13'
timeoutInMinutes: 10
strategy:
matrix:
"Python 3.5":
python.version: '3.5'
"Python 3.6":
python.version: '3.6'
"Python 3.7":
python.version: '3.7'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
- bash: ci/ci.sh
displayName: "Run the actual tests"
- task: PublishTestResults@2
inputs:
testResultsFiles: 'test-results.xml'
condition: succeededOrFailed()