1variables:
2  coverage: false
3
4trigger: ['master', '3.9', '3.8', '3.7']
5
6jobs:
7- job: Prebuild
8  displayName: Pre-build checks
9
10  pool:
11    vmImage: ubuntu-18.04
12
13  steps:
14  - template: ./prebuild-checks.yml
15
16
17- job: Docs_PR
18  displayName: Docs PR
19  dependsOn: Prebuild
20  condition: and(succeeded(), eq(dependencies.Prebuild.outputs['docs.run'], 'true'))
21
22  pool:
23    vmImage: ubuntu-18.04
24
25  steps:
26  - template: ./docs-steps.yml
27    parameters:
28      upload: true
29
30
31- job: macOS_CI_Tests
32  displayName: macOS CI Tests
33  dependsOn: Prebuild
34  #condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
35  # bpo-39837: macOS tests on Azure Pipelines are disabled
36  condition: false
37
38  variables:
39    testRunTitle: '$(build.sourceBranchName)-macos'
40    testRunPlatform: macos
41
42  pool:
43    vmImage: macos-10.14
44
45  steps:
46  - template: ./macos-steps.yml
47
48
49- job: Ubuntu_CI_Tests
50  displayName: Ubuntu CI Tests
51  dependsOn: Prebuild
52  condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
53
54  pool:
55    vmImage: ubuntu-18.04
56
57  variables:
58    testRunTitle: '$(build.sourceBranchName)-linux'
59    testRunPlatform: linux
60    openssl_version: 1.1.1g
61
62  steps:
63  - template: ./posix-steps.yml
64    parameters:
65      dependencies: apt
66
67
68- job: Ubuntu_Coverage_CI_Tests
69  displayName: Ubuntu CI Tests (coverage)
70  dependsOn: Prebuild
71  condition: |
72    and(
73        and(
74            succeeded(),
75            eq(variables['coverage'], 'true')
76        ),
77        eq(dependencies.Prebuild.outputs['tests.run'], 'true')
78    )
79
80  pool:
81    vmImage: ubuntu-18.04
82
83  variables:
84    testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
85    testRunPlatform: linux-coverage
86    openssl_version: 1.1.1g
87
88  steps:
89  - template: ./posix-steps.yml
90    parameters:
91      dependencies: apt
92      coverage: true
93
94
95- job: Windows_CI_Tests
96  displayName: Windows CI Tests
97  dependsOn: Prebuild
98  condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
99
100  pool:
101    vmImage: windows-2019
102
103  strategy:
104    matrix:
105      win32:
106        arch: win32
107        buildOpt: '-p Win32'
108        testRunTitle: '$(Build.SourceBranchName)-win32'
109        testRunPlatform: win32
110      win64:
111        arch: amd64
112        buildOpt: '-p x64'
113        testRunTitle: '$(Build.SourceBranchName)-win64'
114        testRunPlatform: win64
115    maxParallel: 4
116
117  steps:
118  - template: ./windows-steps.yml
119
120  - template: ./windows-layout-steps.yml
121    parameters:
122      kind: nuget
123  - template: ./windows-layout-steps.yml
124    parameters:
125      kind: embed
126  - template: ./windows-layout-steps.yml
127    parameters:
128      kind: appx
129      fulltest: true
130