Skip to content

Commit f88bf15

Browse files
committed
Merge remote-tracking branch 'origin/master' into lsprof
2 parents 10dfe1d + 5aaac94 commit f88bf15

File tree

1,993 files changed

+146824
-80683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,993 files changed

+146824
-80683
lines changed

.azure-pipelines/ci.yml

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
variables:
2+
manylinux: false
3+
coverage: false
4+
5+
resources:
6+
containers:
7+
- container: manylinux1
8+
image: pyca/cryptography-manylinux1:x86_64
9+
10+
jobs:
11+
- job: Prebuild
12+
displayName: Pre-build checks
13+
14+
pool:
15+
vmImage: ubuntu-16.04
16+
17+
steps:
18+
- template: ./prebuild-checks.yml
19+
20+
21+
- job: Docs_PR
22+
displayName: Docs PR
23+
dependsOn: Prebuild
24+
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['docs.run'], 'true'))
25+
26+
pool:
27+
vmImage: ubuntu-16.04
28+
29+
steps:
30+
- template: ./docs-steps.yml
31+
parameters:
32+
upload: true
33+
34+
35+
- job: macOS_CI_Tests
36+
displayName: macOS CI Tests
37+
dependsOn: Prebuild
38+
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
39+
40+
variables:
41+
testRunTitle: '$(build.sourceBranchName)-macos'
42+
testRunPlatform: macos
43+
44+
pool:
45+
vmImage: xcode9-macos10.13
46+
47+
steps:
48+
- template: ./macos-steps.yml
49+
50+
51+
- job: Ubuntu_CI_Tests
52+
displayName: Ubuntu CI Tests
53+
dependsOn: Prebuild
54+
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
55+
56+
pool:
57+
vmImage: ubuntu-16.04
58+
59+
variables:
60+
testRunTitle: '$(build.sourceBranchName)-linux'
61+
testRunPlatform: linux
62+
openssl_version: 1.1.0j
63+
64+
steps:
65+
- template: ./posix-steps.yml
66+
parameters:
67+
dependencies: apt
68+
69+
70+
- job: ManyLinux1_CI_Tests
71+
displayName: ManyLinux1 CI Tests
72+
dependsOn: Prebuild
73+
condition: |
74+
and(
75+
and(
76+
succeeded(),
77+
eq(variables['manylinux'], 'true')
78+
),
79+
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
80+
)
81+
82+
pool:
83+
vmImage: ubuntu-16.04
84+
85+
container: manylinux1
86+
87+
variables:
88+
testRunTitle: '$(build.sourceBranchName)-manylinux1'
89+
testRunPlatform: manylinux1
90+
openssl_version: ''
91+
92+
steps:
93+
- template: ./posix-steps.yml
94+
parameters:
95+
dependencies: yum
96+
sudo_dependencies: ''
97+
xvfb: false
98+
patchcheck: false
99+
100+
101+
- job: Ubuntu_Coverage_CI_Tests
102+
displayName: Ubuntu CI Tests (coverage)
103+
dependsOn: Prebuild
104+
condition: |
105+
and(
106+
and(
107+
succeeded(),
108+
eq(variables['coverage'], 'true')
109+
),
110+
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
111+
)
112+
113+
pool:
114+
vmImage: ubuntu-16.04
115+
116+
variables:
117+
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
118+
testRunPlatform: linux-coverage
119+
openssl_version: 1.1.0j
120+
121+
steps:
122+
- template: ./posix-steps.yml
123+
parameters:
124+
dependencies: apt
125+
coverage: true
126+
127+
128+
- job: Windows_CI_Tests
129+
displayName: Windows CI Tests
130+
dependsOn: Prebuild
131+
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
132+
133+
pool:
134+
vmImage: vs2017-win2016
135+
136+
strategy:
137+
matrix:
138+
win32:
139+
arch: win32
140+
buildOpt:
141+
testRunTitle: '$(Build.SourceBranchName)-win32'
142+
testRunPlatform: win32
143+
win64:
144+
arch: amd64
145+
buildOpt: '-p x64'
146+
testRunTitle: '$(Build.SourceBranchName)-win64'
147+
testRunPlatform: win64
148+
maxParallel: 2
149+
150+
steps:
151+
- template: ./windows-steps.yml
152+
153+
- template: ./windows-layout-steps.yml
154+
parameters:
155+
kind: nuget
156+
- template: ./windows-layout-steps.yml
157+
parameters:
158+
kind: embed
159+
- template: ./windows-layout-steps.yml
160+
parameters:
161+
kind: appx
162+
fulltest: true

.azure-pipelines/docs-steps.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
parameters:
2+
latex: false
3+
upload: false
4+
5+
steps:
6+
- checkout: self
7+
clean: true
8+
fetchDepth: 5
9+
10+
- task: UsePythonVersion@0
11+
displayName: 'Use Python 3.6 or later'
12+
inputs:
13+
versionSpec: '>=3.6'
14+
15+
- script: python -m pip install sphinx==1.8.2 blurb python-docs-theme
16+
displayName: 'Install build dependencies'
17+
18+
- ${{ if ne(parameters.latex, 'true') }}:
19+
- script: make check suspicious html PYTHON=python
20+
workingDirectory: '$(build.sourcesDirectory)/Doc'
21+
displayName: 'Build documentation'
22+
23+
- ${{ if eq(parameters.latex, 'true') }}:
24+
- script: sudo apt-get update && sudo apt-get install -qy --force-yes texlive-full
25+
displayName: 'Install LaTeX'
26+
27+
- script: make dist PYTHON=python SPHINXBUILD='python -m sphinx' BLURB='python -m blurb'
28+
workingDirectory: '$(build.sourcesDirectory)/Doc'
29+
displayName: 'Build documentation'
30+
31+
- ${{ if eq(parameters.upload, 'true') }}:
32+
- task: PublishBuildArtifacts@1
33+
displayName: 'Publish docs'
34+
35+
inputs:
36+
PathToPublish: '$(build.sourcesDirectory)/Doc/build'
37+
ArtifactName: docs
38+
publishLocation: Container
39+
40+
- ${{ if eq(parameters.latex, 'true') }}:
41+
- task: PublishBuildArtifacts@1
42+
displayName: 'Publish dist'
43+
inputs:
44+
PathToPublish: '$(build.sourcesDirectory)/Doc/dist'
45+
ArtifactName: docs_dist
46+
publishLocation: Container

.azure-pipelines/macos-steps.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
steps:
2+
- checkout: self
3+
clean: true
4+
fetchDepth: 5
5+
6+
- script: ./configure --with-pydebug --with-openssl=/usr/local/opt/openssl --prefix=/opt/python-azdev
7+
displayName: 'Configure CPython (debug)'
8+
9+
- script: make -s -j4
10+
displayName: 'Build CPython'
11+
12+
- script: make pythoninfo
13+
displayName: 'Display build info'
14+
15+
- script: make buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
16+
displayName: 'Tests'
17+
18+
- task: PublishTestResults@2
19+
displayName: 'Publish Test Results'
20+
inputs:
21+
testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
22+
mergeTestResults: true
23+
testRunTitle: $(testRunTitle)
24+
platform: $(testRunPlatform)
25+
condition: succeededOrFailed()

.azure-pipelines/posix-deps-apt.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apt-get update
2+
3+
apt-get -yq install \
4+
build-essential \
5+
zlib1g-dev \
6+
libbz2-dev \
7+
liblzma-dev \
8+
libncurses5-dev \
9+
libreadline6-dev \
10+
libsqlite3-dev \
11+
libssl-dev \
12+
libgdbm-dev \
13+
tk-dev \
14+
lzma \
15+
lzma-dev \
16+
liblzma-dev \
17+
libffi-dev \
18+
uuid-dev \
19+
xvfb
20+
21+
if [ ! -z "$1" ]
22+
then
23+
echo ##vso[task.prependpath]$PWD/multissl/openssl/$1
24+
echo ##vso[task.setvariable variable=OPENSSL_DIR]$PWD/multissl/openssl/$1
25+
python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $1 --system Linux
26+
fi

.azure-pipelines/posix-steps.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
parameters:
2+
coverage: false
3+
sudo_dependencies: sudo
4+
dependencies: apt
5+
patchcheck: true
6+
xvfb: true
7+
8+
steps:
9+
- checkout: self
10+
clean: true
11+
fetchDepth: 5
12+
13+
# Work around a known issue affecting Ubuntu VMs on Pipelines
14+
- script: sudo setfacl -Rb /home/vsts
15+
displayName: 'Workaround ACL issue'
16+
17+
- script: ${{ parameters.sudo_dependencies }} ./.azure-pipelines/posix-deps-${{ parameters.dependencies }}.sh $(openssl_version)
18+
displayName: 'Install dependencies'
19+
20+
- script: ./configure --with-pydebug
21+
displayName: 'Configure CPython (debug)'
22+
23+
- script: make -s -j4
24+
displayName: 'Build CPython'
25+
26+
- ${{ if eq(parameters.coverage, 'true') }}:
27+
- script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage
28+
displayName: 'Set up virtual environment'
29+
30+
- script: ./venv/bin/python -m test.pythoninfo
31+
displayName: 'Display build info'
32+
33+
- script: |
34+
$COMMAND -m coverage run --pylib -m test \
35+
--fail-env-changed \
36+
-uall,-cpu \
37+
--junit-xml=$(build.binariesDirectory)/test-results.xml \
38+
-x test_multiprocessing_fork \
39+
-x test_multiprocessing_forkserver \
40+
-x test_multiprocessing_spawn \
41+
-x test_concurrent_futures
42+
displayName: 'Tests with coverage'
43+
env:
44+
${{ if eq(parameters.xvfb, 'true') }}:
45+
COMMAND: xvfb-run ./venv/bin/python
46+
${{ if ne(parameters.xvfb, 'true') }}:
47+
COMMAND: ./venv/bin/python
48+
49+
- script: ./venv/bin/python -m coverage xml
50+
displayName: 'Generate coverage.xml'
51+
52+
- script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash)
53+
displayName: 'Publish code coverage results'
54+
55+
56+
- ${{ if ne(parameters.coverage, 'true') }}:
57+
- script: make pythoninfo
58+
displayName: 'Display build info'
59+
60+
- script: $COMMAND buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
61+
displayName: 'Tests'
62+
env:
63+
${{ if eq(parameters.xvfb, 'true') }}:
64+
COMMAND: xvfb-run make
65+
${{ if ne(parameters.xvfb, 'true') }}:
66+
COMMAND: make
67+
68+
- ${{ if eq(parameters.patchcheck, 'true') }}:
69+
- script: ./python Tools/scripts/patchcheck.py --travis true
70+
displayName: 'Run patchcheck.py'
71+
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
72+
73+
74+
- task: PublishTestResults@2
75+
displayName: 'Publish Test Results'
76+
inputs:
77+
testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
78+
mergeTestResults: true
79+
testRunTitle: $(testRunTitle)
80+
platform: $(testRunPlatform)
81+
condition: succeededOrFailed()

0 commit comments

Comments
 (0)