cpython/.azure-pipelines/docker-steps.yml

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'))