cpython/.azure-pipelines/windows-release/stage-build.yml

180 lines
3.9 KiB
YAML

jobs:
- job: Build_Docs
displayName: Docs build
pool:
name: 'Windows Release'
#vmImage: windows-2019
workspace:
clean: all
steps:
- template: ./checkout.yml
- script: Doc\make.bat html
displayName: 'Build HTML docs'
env:
BUILDDIR: $(Build.BinariesDirectory)\Doc
- script: Doc\make.bat htmlhelp
displayName: 'Build CHM docs'
env:
BUILDDIR: $(Build.BinariesDirectory)\Doc
#- powershell: |
# mkdir -Force "$(Build.BinariesDirectory)\Doc\htmlhelp"
# iwr "https://www.python.org/ftp/python/3.8.0/python380.chm" -OutFile "$(Build.BinariesDirectory)\Doc\htmlhelp\python390a0.chm"
# displayName: 'Cheat at building CHM docs'
- task: CopyFiles@2
displayName: 'Assemble artifact: Doc'
inputs:
sourceFolder: $(Build.BinariesDirectory)\Doc
targetFolder: $(Build.ArtifactStagingDirectory)\Doc
contents: |
html\**\*
htmlhelp\*.chm
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: doc'
inputs:
targetPath: $(Build.ArtifactStagingDirectory)\Doc
artifactName: doc
- job: Build_Python
displayName: Python build
pool:
vmImage: windows-2019
workspace:
clean: all
strategy:
matrix:
win32:
Name: win32
Arch: win32
Platform: x86
Configuration: Release
_HostPython: .\python
win32_d:
Name: win32_d
Arch: win32
Platform: x86
Configuration: Debug
_HostPython: .\python
amd64_d:
Name: amd64_d
Arch: amd64
Platform: x64
Configuration: Debug
_HostPython: .\python
arm64:
Name: arm64
Arch: arm64
Platform: ARM64
Configuration: Release
_HostPython: python
arm64_d:
Name: arm64_d
Arch: arm64
Platform: ARM64
Configuration: Debug
_HostPython: python
steps:
- template: ./build-steps.yml
- job: Build_Python_NonPGO
displayName: Python non-PGO build
condition: and(succeeded(), ne(variables['DoPGO'], 'true'))
pool:
vmImage: windows-2019
workspace:
clean: all
strategy:
matrix:
amd64:
Name: amd64
Arch: amd64
Platform: x64
Configuration: Release
_HostPython: .\python
steps:
- template: ./build-steps.yml
- job: Build_Python_PGO
displayName: Python PGO build
condition: and(succeeded(), eq(variables['DoPGO'], 'true'))
# Allow up to five hours for PGO
timeoutInMinutes: 300
pool:
name: 'Windows Release'
workspace:
clean: all
strategy:
matrix:
amd64:
Name: amd64
Arch: amd64
Platform: x64
Configuration: Release
_HostPython: .\python
steps:
- template: ./build-steps.yml
parameters:
ShouldPGO: true
- job: TclTk_Lib
displayName: Publish Tcl/Tk Library
pool:
vmImage: windows-2019
workspace:
clean: all
steps:
- template: ./checkout.yml
- script: PCbuild\get_externals.bat --no-openssl --no-libffi
displayName: 'Get external dependencies'
- task: MSBuild@1
displayName: 'Copy Tcl/Tk lib for publish'
inputs:
solution: PCbuild\tcltk.props
platform: x86
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_win32"
- task: MSBuild@1
displayName: 'Copy Tcl/Tk lib for publish'
inputs:
solution: PCbuild\tcltk.props
platform: x64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_win32'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_win32'
artifactName: tcltk_lib_win32
- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_amd64'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
artifactName: tcltk_lib_amd64