# Current docs for the syntax of this file are at: # https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted.md name: $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.rr) queue: name: Hosted VS2017 parallel: 2 matrix: amd64: buildOpt: -p x64 outDirSuffix: amd64 win32: buildOpt: outDirSuffix: win32 trigger: branches: include: - master - 3.7 - 3.6 paths: exclude: - Doc/* - Tools/* variables: # Relocate build outputs outside of source directory to make cleaning faster Py_IntDir: $(Build.BinariesDirectory)\obj # UNDONE: Do not build to a different directory because of broken tests Py_OutDir: $(Build.SourcesDirectory)\PCbuild EXTERNAL_DIR: $(Build.BinariesDirectory)\externals steps: - checkout: self 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'))