Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion .vsts/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,35 @@ steps:
clean: true
fetchDepth: 5

- script: |
git fetch -q origin $(system.pullRequest.targetBranch)
if ! git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD) | grep -qE '(\.rst$|^Doc|^Misc)'
then
echo "No docs were updated, stopping build process."
echo "##vso[task.setvariable variable=NoDocs]true"
exit
fi
displayName: Detect doc-only changes
condition: and(succeeded(), variables['system.pullRequest.targetBranch'])

- task: UsePythonVersion@0
displayName: 'Use Python 3.6 or later'
inputs:
versionSpec: '>=3.6'
condition: and(succeeded(), ne(variables['NoDocs'], 'true'))

- script: python -m pip install sphinx~=1.6.1 blurb python-docs-theme
displayName: 'Install build dependencies'
condition: and(succeeded(), ne(variables['NoDocs'], 'true'))

- script: make check suspicious html PYTHON=python
workingDirectory: '$(build.sourcesDirectory)/Doc'
displayName: 'Build documentation'
condition: and(succeeded(), ne(variables['NoDocs'], 'true'))

- task: PublishBuildArtifacts@1
displayName: 'Publish build'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
condition: and(and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')), ne(variables['NoDocs'], 'true'))
inputs:
PathToPublish: '$(build.sourcesDirectory)/Doc/build'
ArtifactName: build
Expand Down
18 changes: 18 additions & 0 deletions .vsts/linux-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,24 @@ steps:
clean: true
fetchDepth: 5

- script: |
git fetch -q origin $(system.pullRequest.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
condition: and(succeeded(), variables['system.pullRequest.targetBranch'])

#- template: linux-deps.yml

# See https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted-templates.md
# For now, we copy/paste the steps
- script: echo "deb-src http://archive.ubuntu.com/ubuntu/ xenial main" > /etc/apt/sources.list.d/python.list && sudo apt-get update
displayName: 'Update apt-get lists'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: >
sudo apt-get -yq install
Expand All @@ -54,18 +66,24 @@ steps:

- script: ./configure --with-pydebug
displayName: 'Configure CPython (debug)'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make -s -j4
displayName: 'Build CPython'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage
displayName: 'Set up virtual environment'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: ./venv/bin/python -m test.pythoninfo
displayName: 'Display build info'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: xvfb-run./venv/bin/python -m coverage run --pylib -m test -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures
displayName: 'Tests with coverage'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash)
displayName: 'Publish code coverage results'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))
17 changes: 17 additions & 0 deletions .vsts/linux-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,24 @@ steps:
clean: true
fetchDepth: 5

- script: |
git fetch -q origin $(system.pullRequest.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
condition: and(succeeded(), variables['system.pullRequest.targetBranch'])

#- template: linux-deps.yml

# See https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted-templates.md
# For now, we copy/paste the steps
- script: echo "deb-src http://archive.ubuntu.com/ubuntu/ xenial main" > /etc/apt/sources.list.d/python.list && sudo apt-get update
displayName: 'Update apt-get lists'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: >
sudo apt-get -yq install
Expand All @@ -54,16 +66,21 @@ steps:

- script: ./configure --with-pydebug
displayName: 'Configure CPython (debug)'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make -s -j4
displayName: 'Build CPython'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make pythoninfo
displayName: 'Display build info'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

# Run patchcheck and fail if anything is discovered
- script: ./python Tools/scripts/patchcheck.py --travis true
displayName: 'Run patchcheck.py'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu"
displayName: 'Tests'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))
18 changes: 18 additions & 0 deletions .vsts/macos-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,32 @@ steps:
clean: true
fetchDepth: 5

- script: |
git fetch -q origin $(system.pullRequest.targetBranch)
changes = $(git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD))
echo "Files changed:"
echo "$changes"
if ! echo "$changes" | 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
condition: and(succeeded(), variables['system.pullRequest.targetBranch'])

- script: ./configure --with-pydebug --with-openssl=/usr/local/opt/openssl --prefix=/opt/python-vsts
displayName: 'Configure CPython (debug)'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make -s -j4
displayName: 'Build CPython'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make pythoninfo
displayName: 'Display build info'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: make buildbottest TESTOPTS="-j4 -uall,-cpu"
displayName: 'Tests'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))
12 changes: 12 additions & 0 deletions .vsts/windows-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,25 @@ steps:
clean: true
fetchDepth: 5

- powershell: |
git fetch -q origin $(System.PullRequest.TargetBranch)
if (-not (git diff --name-only HEAD (git merge-base HEAD FETCH_HEAD) | sls -NotMatch '(\.rst$)|(^Doc)|(^Misc)')) {
Write-Host 'Only docs were updated. Skipping build'
Write-Host '##vso[task.setvariable variable=DocOnly]true'
}
displayName: Detect doc-only changes
condition: and(succeeded(), variables['System.PullRequest.TargetBranch'])

- script: PCbuild\build.bat -e $(buildOpt)
displayName: 'Build CPython'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: python.bat -m test.pythoninfo
displayName: 'Display build info'
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))

- script: PCbuild\rt.bat -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
displayName: 'Tests'
env:
PREFIX: $(Py_OutDir)\$(outDirSuffix)
condition: and(succeeded(), ne(variables['DocOnly'], 'true'))