diff options
author | Steve Dower <steve.dower@python.org> | 2022-01-22 01:13:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-22 01:13:16 (GMT) |
commit | 70c16468deee9390e34322d32fda57df6e0f46bb (patch) | |
tree | 6279df71970a069f8e655043271a9e443e889a7c /.azure-pipelines/windows-release | |
parent | cd8de40b3b10311de2db7b90abdf80af9e35535f (diff) | |
download | cpython-70c16468deee9390e34322d32fda57df6e0f46bb.zip cpython-70c16468deee9390e34322d32fda57df6e0f46bb.tar.gz cpython-70c16468deee9390e34322d32fda57df6e0f46bb.tar.bz2 |
Improve the Windows release build scripts (GH-30771)
Update to windows-2022 image
Promote queue variables to parameters for better UI
Structure build steps using parameters instead of conditions for simpler status display
Diffstat (limited to '.azure-pipelines/windows-release')
14 files changed, 118 insertions, 108 deletions
diff --git a/.azure-pipelines/windows-release/stage-build.yml b/.azure-pipelines/windows-release/stage-build.yml index 69f3b1e..f70414b 100644 --- a/.azure-pipelines/windows-release/stage-build.yml +++ b/.azure-pipelines/windows-release/stage-build.yml @@ -2,8 +2,8 @@ jobs: - job: Build_Docs displayName: Docs build pool: - name: 'Windows Release' - #vmImage: windows-2019 + #name: 'Windows Release' + vmImage: windows-2022 workspace: clean: all @@ -45,7 +45,7 @@ jobs: displayName: Python build pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all @@ -91,7 +91,7 @@ jobs: condition: and(succeeded(), ne(variables['DoPGO'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all @@ -141,7 +141,7 @@ jobs: displayName: Publish Tcl/Tk Library pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-layout-embed.yml b/.azure-pipelines/windows-release/stage-layout-embed.yml index dbccdea..c8b23d3 100644 --- a/.azure-pipelines/windows-release/stage-layout-embed.yml +++ b/.azure-pipelines/windows-release/stage-layout-embed.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), eq(variables['DoEmbed'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-layout-full.yml b/.azure-pipelines/windows-release/stage-layout-full.yml index 8fc8da3..0ba2fc0 100644 --- a/.azure-pipelines/windows-release/stage-layout-full.yml +++ b/.azure-pipelines/windows-release/stage-layout-full.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), eq(variables['DoLayout'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-layout-msix.yml b/.azure-pipelines/windows-release/stage-layout-msix.yml index def4f7d..6efd327 100644 --- a/.azure-pipelines/windows-release/stage-layout-msix.yml +++ b/.azure-pipelines/windows-release/stage-layout-msix.yml @@ -3,7 +3,7 @@ jobs: displayName: Make MSIX layout pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-layout-nuget.yml b/.azure-pipelines/windows-release/stage-layout-nuget.yml index 41cdff8..b60a324 100644 --- a/.azure-pipelines/windows-release/stage-layout-nuget.yml +++ b/.azure-pipelines/windows-release/stage-layout-nuget.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), eq(variables['DoNuget'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-msi.yml b/.azure-pipelines/windows-release/stage-msi.yml index 9b965b0..f14bc9a 100644 --- a/.azure-pipelines/windows-release/stage-msi.yml +++ b/.azure-pipelines/windows-release/stage-msi.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), not(variables['SigningCertificate'])) pool: - vmImage: windows-2019 + vmImage: windows-2022 variables: ReleaseUri: http://www.python.org/{arch} diff --git a/.azure-pipelines/windows-release/stage-pack-msix.yml b/.azure-pipelines/windows-release/stage-pack-msix.yml index 9f7919e..9598815 100644 --- a/.azure-pipelines/windows-release/stage-pack-msix.yml +++ b/.azure-pipelines/windows-release/stage-pack-msix.yml @@ -3,7 +3,7 @@ jobs: displayName: Pack MSIX bundles pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml index d5edf44..38f6772 100644 --- a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml +++ b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml @@ -1,10 +1,13 @@ +parameters: + BuildToPublish: '' + jobs: - job: Publish_Nuget displayName: Publish Nuget packages condition: and(succeeded(), eq(variables['DoNuget'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all @@ -12,24 +15,25 @@ jobs: steps: - checkout: none - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact: nuget' - condition: and(succeeded(), not(variables['BuildToPublish'])) - inputs: - artifactName: nuget - downloadPath: $(Build.BinariesDirectory) + - ${{ if parameters.BuildToPublish }}: + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact from ${{ parameters.BuildToPublish }}' + inputs: + artifactName: nuget + downloadPath: $(Build.BinariesDirectory) + buildType: specific + project: $(System.TeamProject) + pipeline: $(Build.DefinitionName) + buildVersionToDownload: specific + buildId: ${{ parameters.BuildToPublish }} + + - ${{ else }}: + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact: nuget' + inputs: + artifactName: nuget + downloadPath: $(Build.BinariesDirectory) - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact: nuget' - condition: and(succeeded(), variables['BuildToPublish']) - inputs: - artifactName: nuget - downloadPath: $(Build.BinariesDirectory) - buildType: specific - project: cpython - pipeline: Windows-Release - buildVersionToDownload: specific - buildId: $(BuildToPublish) - powershell: 'gci pythonarm*.nupkg | %{ Write-Host "Not publishing: $($_.Name)"; gi $_ } | del' displayName: 'Prevent publishing ARM/ARM64 packages' diff --git a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml index 4b88bde..ef95572 100644 --- a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml +++ b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml @@ -1,10 +1,13 @@ +parameters: + BuildToPublish: '' + jobs: - job: Publish_Python displayName: Publish python.org packages condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), eq(variables['DoEmbed'], 'true'))) pool: - #vmImage: windows-2019 + #vmImage: windows-2022 name: 'Windows Release' workspace: @@ -18,62 +21,61 @@ jobs: inputs: versionSpec: '>=3.6' - - task: DownloadPipelineArtifact@1 - displayName: 'Download artifact: Doc' - condition: and(succeeded(), not(variables['BuildToPublish'])) - inputs: - artifactName: Doc - targetPath: $(Build.BinariesDirectory)\Doc - - - task: DownloadPipelineArtifact@1 - displayName: 'Download artifact: msi' - condition: and(succeeded(), not(variables['BuildToPublish'])) - inputs: - artifactName: msi - targetPath: $(Build.BinariesDirectory)\msi + - ${{ if parameters.BuildToPublish }}: + - task: DownloadPipelineArtifact@1 + displayName: 'Download artifact from ${{ parameters.BuildToPublish }}: Doc' + inputs: + artifactName: Doc + targetPath: $(Build.BinariesDirectory)\Doc + buildType: specific + project: $(System.TeamProject) + pipeline: $(Build.DefinitionName) + buildVersionToDownload: specific + buildId: ${{ parameters.BuildToPublish }} + + - task: DownloadPipelineArtifact@1 + displayName: 'Download artifact from ${{ parameters.BuildToPublish }}: msi' + inputs: + artifactName: msi + targetPath: $(Build.BinariesDirectory)\msi + buildType: specific + project: $(System.TeamProject) + pipeline: $(Build.DefinitionName) + buildVersionToDownload: specific + buildId: ${{ parameters.BuildToPublish }} + + # Note that embed is a 'build' artifact, not a 'pipeline' artifact + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact from ${{ parameters.BuildToPublish }}: embed' + inputs: + artifactName: embed + downloadPath: $(Build.BinariesDirectory) + buildType: specific + project: $(System.TeamProject) + pipeline: $(Build.DefinitionName) + buildVersionToDownload: specific + buildId: ${{ parameters.BuildToPublish }} + + - ${{ else }}: + - task: DownloadPipelineArtifact@1 + displayName: 'Download artifact: Doc' + inputs: + artifactName: Doc + targetPath: $(Build.BinariesDirectory)\Doc + + - task: DownloadPipelineArtifact@1 + displayName: 'Download artifact: msi' + inputs: + artifactName: msi + targetPath: $(Build.BinariesDirectory)\msi + + # Note that embed is a 'build' artifact, not a 'pipeline' artifact + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact: embed' + inputs: + artifactName: embed + downloadPath: $(Build.BinariesDirectory) - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact: embed' - condition: and(succeeded(), not(variables['BuildToPublish'])) - inputs: - artifactName: embed - downloadPath: $(Build.BinariesDirectory) - - - task: DownloadPipelineArtifact@1 - displayName: 'Download artifact from $(BuildToPublish): Doc' - condition: and(succeeded(), variables['BuildToPublish']) - inputs: - artifactName: Doc - targetPath: $(Build.BinariesDirectory)\Doc - buildType: specific - project: cpython - pipeline: 21 - buildVersionToDownload: specific - buildId: $(BuildToPublish) - - - task: DownloadPipelineArtifact@1 - displayName: 'Download artifact from $(BuildToPublish): msi' - condition: and(succeeded(), variables['BuildToPublish']) - inputs: - artifactName: msi - targetPath: $(Build.BinariesDirectory)\msi - buildType: specific - project: cpython - pipeline: 21 - buildVersionToDownload: specific - buildId: $(BuildToPublish) - - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact from $(BuildToPublish): embed' - condition: and(succeeded(), variables['BuildToPublish']) - inputs: - artifactName: embed - downloadPath: $(Build.BinariesDirectory) - buildType: specific - project: cpython - pipeline: Windows-Release - buildVersionToDownload: specific - buildId: $(BuildToPublish) - powershell: 'gci *embed-arm*.zip | %{ Write-Host "Not publishing: $($_.Name)"; gi $_ } | del' displayName: 'Prevent publishing ARM/ARM64 packages' @@ -105,6 +107,7 @@ jobs: "$(Build.SourcesDirectory)\Tools\msi\purge.py" (gci msi\*\python-*.exe | %{ $_.Name -replace 'python-(.+?)(-|\.exe).+', '$1' } | select -First 1) workingDirectory: $(Build.BinariesDirectory) + condition: and(succeeded(), eq(variables['SigningCertificate'], variables['__RealSigningCertificate'])) displayName: 'Purge CDN' - powershell: | @@ -124,7 +127,7 @@ jobs: Write-Error "Failed to validate $failures installers" exit 1 } - #condition: and(succeeded(), eq(variables['SigningCertificate'], variables['__RealSigningCertificate'])) + condition: and(succeeded(), eq(variables['SigningCertificate'], variables['__RealSigningCertificate'])) workingDirectory: $(Build.BinariesDirectory) displayName: 'Test layouts' diff --git a/.azure-pipelines/windows-release/stage-publish-store.yml b/.azure-pipelines/windows-release/stage-publish-store.yml index e0512b9..f3d4c80 100644 --- a/.azure-pipelines/windows-release/stage-publish-store.yml +++ b/.azure-pipelines/windows-release/stage-publish-store.yml @@ -1,10 +1,13 @@ +parameters: + BuildToPublish: '' + jobs: - job: Publish_Store displayName: Publish Store packages condition: and(succeeded(), eq(variables['DoMSIX'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all @@ -12,24 +15,24 @@ jobs: steps: - checkout: none - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact: msixupload' - condition: and(succeeded(), not(variables['BuildToPublish'])) - inputs: - artifactName: msixupload - downloadPath: $(Build.BinariesDirectory) + - ${{ if parameters.BuildToPublish }}: + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact: msixupload' + inputs: + artifactName: msixupload + downloadPath: $(Build.BinariesDirectory) + buildType: specific + project: cpython + pipeline: Windows-Release + buildVersionToDownload: specific + buildId: ${{ parameters.BuildToPublish }} - - task: DownloadBuildArtifacts@0 - displayName: 'Download artifact: msixupload' - condition: and(succeeded(), variables['BuildToPublish']) - inputs: - artifactName: msixupload - downloadPath: $(Build.BinariesDirectory) - buildType: specific - project: cpython - pipeline: Windows-Release - buildVersionToDownload: specific - buildId: $(BuildToPublish) + - ${{ else }}: + - task: DownloadBuildArtifacts@0 + displayName: 'Download artifact: msixupload' + inputs: + artifactName: msixupload + downloadPath: $(Build.BinariesDirectory) # TODO: eq(variables['SigningCertificate'], variables['__RealSigningCertificate']) # If we are not real-signed, DO NOT PUBLISH diff --git a/.azure-pipelines/windows-release/stage-sign.yml b/.azure-pipelines/windows-release/stage-sign.yml index d43e077..4481aa8 100644 --- a/.azure-pipelines/windows-release/stage-sign.yml +++ b/.azure-pipelines/windows-release/stage-sign.yml @@ -120,7 +120,7 @@ jobs: condition: and(succeeded(), not(variables['SigningCertificate'])) pool: - vmImage: windows-2019 + vmImage: windows-2022 steps: - checkout: none diff --git a/.azure-pipelines/windows-release/stage-test-embed.yml b/.azure-pipelines/windows-release/stage-test-embed.yml index d99bd74..252db95 100644 --- a/.azure-pipelines/windows-release/stage-test-embed.yml +++ b/.azure-pipelines/windows-release/stage-test-embed.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), eq(variables['DoEmbed'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-test-msi.yml b/.azure-pipelines/windows-release/stage-test-msi.yml index 21e38c3..4b02f47 100644 --- a/.azure-pipelines/windows-release/stage-test-msi.yml +++ b/.azure-pipelines/windows-release/stage-test-msi.yml @@ -3,7 +3,7 @@ jobs: displayName: Test MSI pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all diff --git a/.azure-pipelines/windows-release/stage-test-nuget.yml b/.azure-pipelines/windows-release/stage-test-nuget.yml index 94d815e..c500baf 100644 --- a/.azure-pipelines/windows-release/stage-test-nuget.yml +++ b/.azure-pipelines/windows-release/stage-test-nuget.yml @@ -4,7 +4,7 @@ jobs: condition: and(succeeded(), eq(variables['DoNuget'], 'true')) pool: - vmImage: windows-2019 + vmImage: windows-2022 workspace: clean: all |