summaryrefslogtreecommitdiffstats
path: root/.azure-pipelines/windows-release
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2022-01-22 01:13:16 (GMT)
committerGitHub <noreply@github.com>2022-01-22 01:13:16 (GMT)
commit70c16468deee9390e34322d32fda57df6e0f46bb (patch)
tree6279df71970a069f8e655043271a9e443e889a7c /.azure-pipelines/windows-release
parentcd8de40b3b10311de2db7b90abdf80af9e35535f (diff)
downloadcpython-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')
-rw-r--r--.azure-pipelines/windows-release/stage-build.yml10
-rw-r--r--.azure-pipelines/windows-release/stage-layout-embed.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-layout-full.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-layout-msix.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-layout-nuget.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-msi.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-pack-msix.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-publish-nugetorg.yml40
-rw-r--r--.azure-pipelines/windows-release/stage-publish-pythonorg.yml117
-rw-r--r--.azure-pipelines/windows-release/stage-publish-store.yml39
-rw-r--r--.azure-pipelines/windows-release/stage-sign.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-test-embed.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-test-msi.yml2
-rw-r--r--.azure-pipelines/windows-release/stage-test-nuget.yml2
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