Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
28f6cb34
Commit
28f6cb34
authored
Jan 22, 2019
by
Steve Dower
Committed by
GitHub
Jan 22, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-35683: Improve Azure Pipelines steps (GH-11493)
parent
bf4ac2d2
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
148 additions
and
166 deletions
+148
-166
.azure-pipelines/ci.yml
.azure-pipelines/ci.yml
+20
-4
.azure-pipelines/docker-steps.yml
.azure-pipelines/docker-steps.yml
+0
-76
.azure-pipelines/posix-deps-apt.sh
.azure-pipelines/posix-deps-apt.sh
+2
-2
.azure-pipelines/posix-steps.yml
.azure-pipelines/posix-steps.yml
+22
-8
.azure-pipelines/pr.yml
.azure-pipelines/pr.yml
+69
-2
.azure-pipelines/windows-appx-test.yml
.azure-pipelines/windows-appx-test.yml
+0
-67
.azure-pipelines/windows-layout-steps.yml
.azure-pipelines/windows-layout-steps.yml
+21
-4
.azure-pipelines/windows-steps.yml
.azure-pipelines/windows-steps.yml
+2
-1
Lib/idlelib/idle_test/test_help_about.py
Lib/idlelib/idle_test/test_help_about.py
+2
-0
Lib/test/libregrtest/main.py
Lib/test/libregrtest/main.py
+4
-0
Lib/test/test_symbol.py
Lib/test/test_symbol.py
+3
-2
Misc/NEWS.d/next/Build/2019-01-10-11-37-18.bpo-35683.pf5Oos.rst
...EWS.d/next/Build/2019-01-10-11-37-18.bpo-35683.pf5Oos.rst
+1
-0
PC/layout/main.py
PC/layout/main.py
+2
-0
No files found.
.azure-pipelines/ci.yml
View file @
28f6cb34
...
...
@@ -2,6 +2,11 @@ variables:
manylinux
:
false
coverage
:
false
resources
:
containers
:
-
container
:
manylinux1
image
:
pyca/cryptography-manylinux1:x86_64
jobs
:
-
job
:
Prebuild
displayName
:
Pre-build checks
...
...
@@ -54,10 +59,12 @@ jobs:
variables
:
testRunTitle
:
'
$(build.sourceBranchName)-linux'
testRunPlatform
:
linux
openssl_version
:
1.1.0
g
openssl_version
:
1.1.0
j
steps
:
-
template
:
./posix-steps.yml
parameters
:
dependencies
:
apt
-
job
:
ManyLinux1_CI_Tests
...
...
@@ -75,13 +82,20 @@ jobs:
pool
:
vmImage
:
ubuntu-16.04
container
:
manylinux1
variables
:
testRunTitle
:
'
$(build.sourceBranchName)-manylinux1'
testRunPlatform
:
manylinux1
imageName
:
'
dockcross/manylinux-x64
'
openssl_version
:
'
'
steps
:
-
template
:
./docker-steps.yml
-
template
:
./posix-steps.yml
parameters
:
dependencies
:
yum
sudo_dependencies
:
'
'
xvfb
:
false
patchcheck
:
false
-
job
:
Ubuntu_Coverage_CI_Tests
...
...
@@ -102,11 +116,12 @@ jobs:
variables
:
testRunTitle
:
'
$(Build.SourceBranchName)-linux-coverage'
testRunPlatform
:
linux-coverage
openssl_version
:
1.1.0
g
openssl_version
:
1.1.0
j
steps
:
-
template
:
./posix-steps.yml
parameters
:
dependencies
:
apt
coverage
:
true
...
...
@@ -144,3 +159,4 @@ jobs:
-
template
:
./windows-layout-steps.yml
parameters
:
kind
:
appx
fulltest
:
true
.azure-pipelines/docker-steps.yml
deleted
100644 → 0
View file @
bf4ac2d2
steps
:
-
checkout
:
self
clean
:
true
fetchDepth
:
5
-
${{ if ne(parameters.targetBranch, '') }}
:
-
script
:
|
git fetch -q origin ${{ parameters.targetbranch }}
if ! git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD) | grep -qvE '(\.rst$|^Doc|^Misc)'
then
echo "Only docs were updated, stopping build process."
echo "##vso[task.setvariable variable=DocOnly]true"
exit
fi
displayName
:
Detect doc-only changes
-
task
:
docker@0
displayName
:
'
Configure
CPython
(debug)'
inputs
:
action
:
'
Run
an
image'
imageName
:
$(imageName)
volumes
:
|
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir
:
'
/src'
containerCommand
:
'
./configure
--with-pydebug'
detached
:
false
condition
:
and(succeeded(), ne(variables['DocOnly'], 'true'))
-
task
:
docker@0
displayName
:
'
Build
CPython'
inputs
:
action
:
'
Run
an
image'
imageName
:
$(imageName)
volumes
:
|
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir
:
'
/src'
containerCommand
:
'
make
-s
-j4'
detached
:
false
condition
:
and(succeeded(), ne(variables['DocOnly'], 'true'))
-
task
:
docker@0
displayName
:
'
Display
build
info'
inputs
:
action
:
'
Run
an
image'
imageName
:
$(imageName)
volumes
:
|
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir
:
'
/src'
containerCommand
:
'
make
pythoninfo'
detached
:
false
condition
:
and(succeeded(), ne(variables['DocOnly'], 'true'))
-
task
:
docker@0
displayName
:
'
Tests'
inputs
:
action
:
'
Run
an
image'
imageName
:
$(imageName)
volumes
:
|
$(build.sourcesDirectory):/src
$(build.binariesDirectory):/build
workDir
:
'
/src'
containerCommand
:
'
make
buildbottest
TESTOPTS="-j4
-uall,-cpu
--junit-xml=/build/test-results.xml"'
detached
:
false
condition
:
and(succeeded(), ne(variables['DocOnly'], 'true'))
-
task
:
PublishTestResults@2
displayName
:
'
Publish
Test
Results'
inputs
:
testResultsFiles
:
'
$(build.binariesDirectory)/test-results.xml'
mergeTestResults
:
true
testRunTitle
:
$(testRunTitle)
platform
:
$(testRunPlatform)
condition
:
and(succeededOrFailed(), ne(variables['DocOnly'], 'true'))
.azure-pipelines/posix-deps.sh
→
.azure-pipelines/posix-deps
-apt
.sh
View file @
28f6cb34
sudo
apt-get update
apt-get update
sudo
apt-get
-yq
install
\
apt-get
-yq
install
\
build-essential
\
zlib1g-dev
\
libbz2-dev
\
...
...
.azure-pipelines/posix-steps.yml
View file @
28f6cb34
parameters
:
coverage
:
false
sudo_dependencies
:
sudo
dependencies
:
apt
patchcheck
:
true
xvfb
:
true
steps
:
-
checkout
:
self
clean
:
true
fetchDepth
:
5
-
script
:
./.azure-pipelines/posix-deps
.sh $(openssl_version)
-
script
:
${{ parameters.sudo_dependencies }} ./.azure-pipelines/posix-deps-${{ parameters.dependencies }}
.sh $(openssl_version)
displayName
:
'
Install
dependencies'
-
script
:
./configure --with-pydebug
...
...
@@ -23,7 +27,7 @@ steps:
displayName
:
'
Display
build
info'
-
script
:
|
xvfb-run ./venv/bin/python
-m coverage run --pylib -m test \
$COMMAND
-m coverage run --pylib -m test \
--fail-env-changed \
-uall,-cpu \
--junit-xml=$(build.binariesDirectory)/test-results.xml \
...
...
@@ -32,6 +36,11 @@ steps:
-x test_multiprocessing_spawn \
-x test_concurrent_futures
displayName
:
'
Tests
with
coverage'
env
:
${{ if eq(parameters.xvfb, 'true') }}
:
COMMAND
:
xvfb-run ./venv/bin/python
${{ if ne(parameters.xvfb, 'true') }}
:
COMMAND
:
./venv/bin/python
-
script
:
./venv/bin/python -m coverage xml
displayName
:
'
Generate
coverage.xml'
...
...
@@ -44,13 +53,18 @@ steps:
-
script
:
make pythoninfo
displayName
:
'
Display
build
info'
-
script
:
xvfb-run make
buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
-
script
:
$COMMAND
buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
displayName
:
'
Tests'
-
script
:
./python Tools/scripts/patchcheck.py --travis
true
displayName
:
'
Run
patchcheck.py'
condition
:
and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
env
:
${{ if eq(parameters.xvfb, 'true') }}
:
COMMAND
:
xvfb-run make
${{ if ne(parameters.xvfb, 'true') }}
:
COMMAND
:
make
-
${{ if eq(parameters.patchcheck, 'true') }}
:
-
script
:
./python Tools/scripts/patchcheck.py --travis
true
displayName
:
'
Run
patchcheck.py'
condition
:
and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
-
task
:
PublishTestResults@2
...
...
.azure-pipelines/pr.yml
View file @
28f6cb34
variables
:
manylinux
:
false
coverage
:
false
resources
:
containers
:
-
container
:
manylinux1
image
:
pyca/cryptography-manylinux1:x86_64
jobs
:
-
job
:
Prebuild
displayName
:
Pre-build checks
...
...
@@ -50,12 +59,70 @@ jobs:
variables
:
testRunTitle
:
'
$(system.pullRequest.TargetBranch)-linux'
testRunPlatform
:
linux
openssl_version
:
1.1.0
g
openssl_version
:
1.1.0
j
steps
:
-
template
:
./posix-steps.yml
parameters
:
targetBranch
:
$(System.PullRequest.TargetBranch)
dependencies
:
apt
-
job
:
ManyLinux1_PR_Tests
displayName
:
ManyLinux1 PR Tests
dependsOn
:
Prebuild
condition
:
|
and(
and(
succeeded(),
eq(variables['manylinux'], 'true')
),
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
)
pool
:
vmImage
:
ubuntu-16.04
container
:
manylinux1
variables
:
testRunTitle
:
'
$(system.pullRequest.TargetBranch)-manylinux1'
testRunPlatform
:
manylinux1
openssl_version
:
'
'
steps
:
-
template
:
./posix-steps.yml
parameters
:
dependencies
:
yum
sudo_dependencies
:
'
'
xvfb
:
false
patchcheck
:
false
-
job
:
Ubuntu_Coverage_PR_Tests
displayName
:
Ubuntu PR Tests (coverage)
dependsOn
:
Prebuild
condition
:
|
and(
and(
succeeded(),
eq(variables['coverage'], 'true')
),
eq(dependencies.Prebuild.outputs['tests.run'], 'true')
)
pool
:
vmImage
:
ubuntu-16.04
variables
:
testRunTitle
:
'
$(Build.SourceBranchName)-linux-coverage'
testRunPlatform
:
linux-coverage
openssl_version
:
1.1.0j
steps
:
-
template
:
./posix-steps.yml
parameters
:
dependencies
:
apt
coverage
:
true
-
job
:
Windows_PR_Tests
...
...
.azure-pipelines/windows-appx-test.yml
deleted
100644 → 0
View file @
bf4ac2d2
jobs
:
-
job
:
Prebuild
displayName
:
Pre-build checks
pool
:
vmImage
:
ubuntu-16.04
steps
:
-
template
:
./prebuild-checks.yml
-
job
:
Windows_Appx_Tests
displayName
:
Windows Appx Tests
dependsOn
:
Prebuild
condition
:
and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
pool
:
vmImage
:
vs2017-win2016
strategy
:
matrix
:
win64
:
arch
:
amd64
buildOpt
:
'
-p
x64'
testRunTitle
:
'
$(Build.SourceBranchName)-win64-appx'
testRunPlatform
:
win64
maxParallel
:
2
steps
:
-
checkout
:
self
clean
:
true
fetchDepth
:
5
-
powershell
:
|
# Relocate build outputs outside of source directory to make cleaning faster
Write-Host '##vso[task.setvariable variable=Py_IntDir]$(Build.BinariesDirectory)\obj'
# UNDONE: Do not build to a different directory because of broken tests
Write-Host '##vso[task.setvariable variable=Py_OutDir]$(Build.SourcesDirectory)\PCbuild'
Write-Host '##vso[task.setvariable variable=EXTERNALS_DIR]$(Build.BinariesDirectory)\externals'
displayName
:
Update build locations
-
script
:
PCbuild\build.bat -e $(buildOpt)
displayName
:
'
Build
CPython'
env
:
IncludeUwp
:
true
-
script
:
python.bat PC\layout -vv -s "$(Build.SourcesDirectory)" -b "$(Py_OutDir)\$(arch)" -t "$(Py_IntDir)\layout-tmp-$(arch)" --copy "$(Py_IntDir)\layout-$(arch)" --precompile --preset-appx --include-tests
displayName
:
'
Create
APPX
layout'
-
script
:
.\python.exe -m test.pythoninfo
workingDirectory
:
$(Py_IntDir)\layout-$(arch)
displayName
:
'
Display
build
info'
-
script
:
.\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results.xml" --tempdir "$(Py_IntDir)\tmp-$(arch)"
workingDirectory
:
$(Py_IntDir)\layout-$(arch)
displayName
:
'
Tests'
env
:
PREFIX
:
$(Py_IntDir)\layout-$(arch)
-
task
:
PublishTestResults@2
displayName
:
'
Publish
Test
Results'
inputs
:
testResultsFiles
:
'
$(Build.BinariesDirectory)\test-results.xml'
mergeTestResults
:
true
testRunTitle
:
$(testRunTitle)
platform
:
$(testRunPlatform)
condition
:
succeededOrFailed()
.azure-pipelines/windows-layout-steps.yml
View file @
28f6cb34
parameters
:
kind
:
nuget
extraOpts
:
--precompile
fulltest
:
false
steps
:
-
script
:
.\python.bat PC\layout -vv -s "$(Build.SourcesDirectory)" -b "$(Py_OutDir)\$(arch)" -t "$(
Py_IntDir)\layout-tmp-${{ parameters['kind'] }}-$(arch)" --copy "$(Py_OutDir)\layout-${{ parameters['kind'] }}-$(arch)" ${{ parameters['extraOpts'] }} --preset-${{ parameters['kind']
}} --include-tests
displayName
:
Create ${{ parameters
['kind']
}} layout
-
script
:
.\python.bat PC\layout -vv -s "$(Build.SourcesDirectory)" -b "$(Py_OutDir)\$(arch)" -t "$(
Build.BinariesDirectory)\layout-tmp-${{ parameters.kind }}-$(arch)" --copy "$(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)" ${{ parameters.extraOpts }} --preset-${{ parameters.kind
}} --include-tests
displayName
:
Create ${{ parameters
.kind
}} layout
-
script
:
.\python.exe -m test.pythoninfo
workingDirectory
:
$(Py_OutDir)\layout-${{ parameters['kind'] }}-$(arch)
displayName
:
Show layout info (${{ parameters['kind'] }})
workingDirectory
:
$(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
displayName
:
Show layout info (${{ parameters.kind }})
-
${{ if eq(parameters.fulltest, 'true') }}
:
-
script
:
.\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml" --tempdir "$(Build.BinariesDirectory)\tmp-${{ parameters.kind }}-$(arch)"
workingDirectory
:
$(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
displayName
:
${{ parameters.kind }} Tests
env
:
PREFIX
:
$(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
-
task
:
PublishTestResults@2
displayName
:
Publish ${{ parameters.kind }} Test Results
inputs
:
testResultsFiles
:
$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml
mergeTestResults
:
true
testRunTitle
:
${{ parameters.kind }}-$(testRunTitle)
platform
:
$(testRunPlatform)
condition
:
succeededOrFailed()
.azure-pipelines/windows-steps.yml
View file @
28f6cb34
steps
:
-
checkout
:
self
clean
:
tru
e
clean
:
fals
e
fetchDepth
:
5
-
powershell
:
|
...
...
@@ -8,6 +8,7 @@ steps:
Write-Host '##vso[task.setvariable variable=Py_IntDir]$(Build.BinariesDirectory)\obj'
# UNDONE: Do not build to a different directory because of broken tests
Write-Host '##vso[task.setvariable variable=Py_OutDir]$(Build.SourcesDirectory)\PCbuild'
#Write-Host '##vso[task.setvariable variable=Py_OutDir]$(Build.BinariesDirectory)\bin'
Write-Host '##vso[task.setvariable variable=EXTERNALS_DIR]$(Build.BinariesDirectory)\externals'
displayName
:
Update build locations
...
...
Lib/idlelib/idle_test/test_help_about.py
View file @
28f6cb34
...
...
@@ -61,6 +61,8 @@ class LiveDialogTest(unittest.TestCase):
button
.
invoke
()
get
=
dialog
.
_current_textview
.
viewframe
.
textframe
.
text
.
get
lines
=
printer
.
_Printer__lines
if
len
(
lines
)
<
2
:
self
.
fail
(
name
+
' full text was not found'
)
self
.
assertEqual
(
lines
[
0
],
get
(
'1.0'
,
'1.end'
))
self
.
assertEqual
(
lines
[
1
],
get
(
'2.0'
,
'2.end'
))
dialog
.
_current_textview
.
destroy
()
...
...
Lib/test/libregrtest/main.py
View file @
28f6cb34
import
datetime
import
faulthandler
import
json
import
locale
import
os
import
platform
...
...
@@ -565,6 +566,9 @@ class Regrtest:
if
self
.
ns
.
tempdir
:
TEMPDIR
=
self
.
ns
.
tempdir
elif
self
.
ns
.
worker_args
:
ns_dict
,
_
=
json
.
loads
(
self
.
ns
.
worker_args
)
TEMPDIR
=
ns_dict
.
get
(
"tempdir"
)
or
TEMPDIR
os
.
makedirs
(
TEMPDIR
,
exist_ok
=
True
)
...
...
Lib/test/test_symbol.py
View file @
28f6cb34
...
...
@@ -2,6 +2,7 @@ import unittest
from
test
import
support
import
os
import
sys
import
sysconfig
import
subprocess
...
...
@@ -38,8 +39,8 @@ class TestSymbolGeneration(unittest.TestCase):
lines2
=
fp
.
readlines
()
self
.
assertEqual
(
lines1
,
lines2
)
@
unittest
.
skip
If
(
not
os
.
path
.
exists
(
GRAMMAR_FILE
),
'test only works from source build directory'
)
@
unittest
.
skip
Unless
(
sysconfig
.
is_python_build
(
),
'test only works from source build directory'
)
def
test_real_grammar_and_symbol_file
(
self
):
output
=
support
.
TESTFN
self
.
addCleanup
(
support
.
unlink
,
output
)
...
...
Misc/NEWS.d/next/Build/2019-01-10-11-37-18.bpo-35683.pf5Oos.rst
0 → 100644
View file @
28f6cb34
Improved Azure Pipelines build steps and now verifying layouts correctly
PC/layout/main.py
View file @
28f6cb34
...
...
@@ -156,6 +156,8 @@ def get_layout(ns):
for
dest
,
src
in
rglob
(
ns
.
build
,
"vcruntime*.dll"
):
yield
dest
,
src
yield
"LICENSE.txt"
,
ns
.
source
/
"LICENSE"
for
dest
,
src
in
rglob
(
ns
.
build
,
(
"*.pyd"
,
"*.dll"
)):
if
src
.
stem
.
endswith
(
"_d"
)
!=
bool
(
ns
.
debug
)
and
src
not
in
REQUIRED_DLLS
:
continue
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment