bpo-35683: Improve Azure Pipelines steps (GH-11493)
This commit is contained in:
parent
bf4ac2d2fd
commit
28f6cb34f6
|
@ -2,6 +2,11 @@ variables:
|
||||||
manylinux: false
|
manylinux: false
|
||||||
coverage: false
|
coverage: false
|
||||||
|
|
||||||
|
resources:
|
||||||
|
containers:
|
||||||
|
- container: manylinux1
|
||||||
|
image: pyca/cryptography-manylinux1:x86_64
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: Prebuild
|
- job: Prebuild
|
||||||
displayName: Pre-build checks
|
displayName: Pre-build checks
|
||||||
|
@ -54,10 +59,12 @@ jobs:
|
||||||
variables:
|
variables:
|
||||||
testRunTitle: '$(build.sourceBranchName)-linux'
|
testRunTitle: '$(build.sourceBranchName)-linux'
|
||||||
testRunPlatform: linux
|
testRunPlatform: linux
|
||||||
openssl_version: 1.1.0g
|
openssl_version: 1.1.0j
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- template: ./posix-steps.yml
|
- template: ./posix-steps.yml
|
||||||
|
parameters:
|
||||||
|
dependencies: apt
|
||||||
|
|
||||||
|
|
||||||
- job: ManyLinux1_CI_Tests
|
- job: ManyLinux1_CI_Tests
|
||||||
|
@ -75,13 +82,20 @@ jobs:
|
||||||
pool:
|
pool:
|
||||||
vmImage: ubuntu-16.04
|
vmImage: ubuntu-16.04
|
||||||
|
|
||||||
|
container: manylinux1
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
testRunTitle: '$(build.sourceBranchName)-manylinux1'
|
testRunTitle: '$(build.sourceBranchName)-manylinux1'
|
||||||
testRunPlatform: manylinux1
|
testRunPlatform: manylinux1
|
||||||
imageName: 'dockcross/manylinux-x64'
|
openssl_version: ''
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- template: ./docker-steps.yml
|
- template: ./posix-steps.yml
|
||||||
|
parameters:
|
||||||
|
dependencies: yum
|
||||||
|
sudo_dependencies: ''
|
||||||
|
xvfb: false
|
||||||
|
patchcheck: false
|
||||||
|
|
||||||
|
|
||||||
- job: Ubuntu_Coverage_CI_Tests
|
- job: Ubuntu_Coverage_CI_Tests
|
||||||
|
@ -102,11 +116,12 @@ jobs:
|
||||||
variables:
|
variables:
|
||||||
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
|
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
|
||||||
testRunPlatform: linux-coverage
|
testRunPlatform: linux-coverage
|
||||||
openssl_version: 1.1.0g
|
openssl_version: 1.1.0j
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- template: ./posix-steps.yml
|
- template: ./posix-steps.yml
|
||||||
parameters:
|
parameters:
|
||||||
|
dependencies: apt
|
||||||
coverage: true
|
coverage: true
|
||||||
|
|
||||||
|
|
||||||
|
@ -144,3 +159,4 @@ jobs:
|
||||||
- template: ./windows-layout-steps.yml
|
- template: ./windows-layout-steps.yml
|
||||||
parameters:
|
parameters:
|
||||||
kind: appx
|
kind: appx
|
||||||
|
fulltest: true
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
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'))
|
|
|
@ -1,6 +1,6 @@
|
||||||
sudo apt-get update
|
apt-get update
|
||||||
|
|
||||||
sudo apt-get -yq install \
|
apt-get -yq install \
|
||||||
build-essential \
|
build-essential \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
|
@ -1,12 +1,16 @@
|
||||||
parameters:
|
parameters:
|
||||||
coverage: false
|
coverage: false
|
||||||
|
sudo_dependencies: sudo
|
||||||
|
dependencies: apt
|
||||||
|
patchcheck: true
|
||||||
|
xvfb: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
fetchDepth: 5
|
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'
|
displayName: 'Install dependencies'
|
||||||
|
|
||||||
- script: ./configure --with-pydebug
|
- script: ./configure --with-pydebug
|
||||||
|
@ -23,7 +27,7 @@ steps:
|
||||||
displayName: 'Display build info'
|
displayName: 'Display build info'
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
xvfb-run ./venv/bin/python -m coverage run --pylib -m test \
|
$COMMAND -m coverage run --pylib -m test \
|
||||||
--fail-env-changed \
|
--fail-env-changed \
|
||||||
-uall,-cpu \
|
-uall,-cpu \
|
||||||
--junit-xml=$(build.binariesDirectory)/test-results.xml \
|
--junit-xml=$(build.binariesDirectory)/test-results.xml \
|
||||||
|
@ -32,6 +36,11 @@ steps:
|
||||||
-x test_multiprocessing_spawn \
|
-x test_multiprocessing_spawn \
|
||||||
-x test_concurrent_futures
|
-x test_concurrent_futures
|
||||||
displayName: 'Tests with coverage'
|
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
|
- script: ./venv/bin/python -m coverage xml
|
||||||
displayName: 'Generate coverage.xml'
|
displayName: 'Generate coverage.xml'
|
||||||
|
@ -44,13 +53,18 @@ steps:
|
||||||
- script: make pythoninfo
|
- script: make pythoninfo
|
||||||
displayName: 'Display build info'
|
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'
|
displayName: 'Tests'
|
||||||
|
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
|
- script: ./python Tools/scripts/patchcheck.py --travis true
|
||||||
displayName: 'Run patchcheck.py'
|
displayName: 'Run patchcheck.py'
|
||||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
|
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
- task: PublishTestResults@2
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
variables:
|
||||||
|
manylinux: false
|
||||||
|
coverage: false
|
||||||
|
|
||||||
|
resources:
|
||||||
|
containers:
|
||||||
|
- container: manylinux1
|
||||||
|
image: pyca/cryptography-manylinux1:x86_64
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: Prebuild
|
- job: Prebuild
|
||||||
displayName: Pre-build checks
|
displayName: Pre-build checks
|
||||||
|
@ -50,12 +59,70 @@ jobs:
|
||||||
variables:
|
variables:
|
||||||
testRunTitle: '$(system.pullRequest.TargetBranch)-linux'
|
testRunTitle: '$(system.pullRequest.TargetBranch)-linux'
|
||||||
testRunPlatform: linux
|
testRunPlatform: linux
|
||||||
openssl_version: 1.1.0g
|
openssl_version: 1.1.0j
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- template: ./posix-steps.yml
|
- template: ./posix-steps.yml
|
||||||
parameters:
|
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
|
- job: Windows_PR_Tests
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
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()
|
|
|
@ -1,11 +1,28 @@
|
||||||
parameters:
|
parameters:
|
||||||
kind: nuget
|
kind: nuget
|
||||||
extraOpts: --precompile
|
extraOpts: --precompile
|
||||||
|
fulltest: false
|
||||||
|
|
||||||
steps:
|
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
|
- 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
|
displayName: Create ${{ parameters.kind }} layout
|
||||||
|
|
||||||
- script: .\python.exe -m test.pythoninfo
|
- script: .\python.exe -m test.pythoninfo
|
||||||
workingDirectory: $(Py_OutDir)\layout-${{ parameters['kind'] }}-$(arch)
|
workingDirectory: $(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
|
||||||
displayName: Show layout info (${{ parameters['kind'] }})
|
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()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: false
|
||||||
fetchDepth: 5
|
fetchDepth: 5
|
||||||
|
|
||||||
- powershell: |
|
- powershell: |
|
||||||
|
@ -8,6 +8,7 @@ steps:
|
||||||
Write-Host '##vso[task.setvariable variable=Py_IntDir]$(Build.BinariesDirectory)\obj'
|
Write-Host '##vso[task.setvariable variable=Py_IntDir]$(Build.BinariesDirectory)\obj'
|
||||||
# UNDONE: Do not build to a different directory because of broken tests
|
# 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.SourcesDirectory)\PCbuild'
|
||||||
|
#Write-Host '##vso[task.setvariable variable=Py_OutDir]$(Build.BinariesDirectory)\bin'
|
||||||
Write-Host '##vso[task.setvariable variable=EXTERNALS_DIR]$(Build.BinariesDirectory)\externals'
|
Write-Host '##vso[task.setvariable variable=EXTERNALS_DIR]$(Build.BinariesDirectory)\externals'
|
||||||
displayName: Update build locations
|
displayName: Update build locations
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,8 @@ class LiveDialogTest(unittest.TestCase):
|
||||||
button.invoke()
|
button.invoke()
|
||||||
get = dialog._current_textview.viewframe.textframe.text.get
|
get = dialog._current_textview.viewframe.textframe.text.get
|
||||||
lines = printer._Printer__lines
|
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[0], get('1.0', '1.end'))
|
||||||
self.assertEqual(lines[1], get('2.0', '2.end'))
|
self.assertEqual(lines[1], get('2.0', '2.end'))
|
||||||
dialog._current_textview.destroy()
|
dialog._current_textview.destroy()
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import datetime
|
import datetime
|
||||||
import faulthandler
|
import faulthandler
|
||||||
|
import json
|
||||||
import locale
|
import locale
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
|
@ -565,6 +566,9 @@ class Regrtest:
|
||||||
|
|
||||||
if self.ns.tempdir:
|
if self.ns.tempdir:
|
||||||
TEMPDIR = 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)
|
os.makedirs(TEMPDIR, exist_ok=True)
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import unittest
|
||||||
from test import support
|
from test import support
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import sysconfig
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,8 +39,8 @@ class TestSymbolGeneration(unittest.TestCase):
|
||||||
lines2 = fp.readlines()
|
lines2 = fp.readlines()
|
||||||
self.assertEqual(lines1, lines2)
|
self.assertEqual(lines1, lines2)
|
||||||
|
|
||||||
@unittest.skipIf(not os.path.exists(GRAMMAR_FILE),
|
@unittest.skipUnless(sysconfig.is_python_build(),
|
||||||
'test only works from source build directory')
|
'test only works from source build directory')
|
||||||
def test_real_grammar_and_symbol_file(self):
|
def test_real_grammar_and_symbol_file(self):
|
||||||
output = support.TESTFN
|
output = support.TESTFN
|
||||||
self.addCleanup(support.unlink, output)
|
self.addCleanup(support.unlink, output)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Improved Azure Pipelines build steps and now verifying layouts correctly
|
|
@ -156,6 +156,8 @@ def get_layout(ns):
|
||||||
for dest, src in rglob(ns.build, "vcruntime*.dll"):
|
for dest, src in rglob(ns.build, "vcruntime*.dll"):
|
||||||
yield dest, src
|
yield dest, src
|
||||||
|
|
||||||
|
yield "LICENSE.txt", ns.source / "LICENSE"
|
||||||
|
|
||||||
for dest, src in rglob(ns.build, ("*.pyd", "*.dll")):
|
for dest, src in rglob(ns.build, ("*.pyd", "*.dll")):
|
||||||
if src.stem.endswith("_d") != bool(ns.debug) and src not in REQUIRED_DLLS:
|
if src.stem.endswith("_d") != bool(ns.debug) and src not in REQUIRED_DLLS:
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Reference in New Issue