77 lines
2.2 KiB
YAML
77 lines
2.2 KiB
YAML
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'))
|