[Python-checkins] Fix some Windows release build script issues (GH-31931)

zooba webhook-mailer at python.org
Wed Mar 16 11:26:24 EDT 2022


https://github.com/python/cpython/commit/d56a237e160b8e38fc9bd29c6be272b9d92eb67a
commit: d56a237e160b8e38fc9bd29c6be272b9d92eb67a
branch: main
author: Steve Dower <steve.dower at python.org>
committer: zooba <steve.dower at microsoft.com>
date: 2022年03月16日T15:23:35Z
summary:
Fix some Windows release build script issues (GH-31931)
* Fix the condition used when excluding ARM64 packages from publish
* Do not publish anything unless the traditional installer works
* Fix disabling of MSI build
* Add override conditions for publish steps
* Allow overriding the Nuget version number during build
files:
M .azure-pipelines/windows-release.yml
M .azure-pipelines/windows-release/stage-pack-nuget.yml
M .azure-pipelines/windows-release/stage-publish-nugetorg.yml
M .azure-pipelines/windows-release/stage-publish-pythonorg.yml
M .azure-pipelines/windows-release/stage-publish-store.yml
diff --git a/.azure-pipelines/windows-release.yml b/.azure-pipelines/windows-release.yml
index ae2d1b9da1321..096ecadc79eb7 100644
--- a/.azure-pipelines/windows-release.yml
+++ b/.azure-pipelines/windows-release.yml
@@ -136,69 +136,80 @@ stages:
 - template: windows-release/stage-test-embed.yml
 - template: windows-release/stage-test-nuget.yml
 
- - stage: Layout_MSIX
- displayName: Generate MSIX layouts
- dependsOn: Sign
- condition: and(succeeded(), eq(variables['DoMSIX'], 'true'))
- jobs:
- - template: windows-release/stage-layout-msix.yml
- parameters:
- ARM64TclTk: ${{ parameters.ARM64TclTk }}
-
- - stage: Pack_MSIX
- displayName: Package MSIX
- dependsOn: Layout_MSIX
- jobs:
- - template: windows-release/stage-pack-msix.yml
-
- - stage: Build_MSI
- displayName: Build MSI installer
- dependsOn: Sign
- condition: and(succeeded(), eq(variables['DoMSI'], 'true'))
- jobs:
- - template: windows-release/stage-msi.yml
- parameters:
- ARM64TclTk: ${{ parameters.ARM64TclTk }}
-
- - stage: Test_MSI
- displayName: Test MSI installer
- dependsOn: Build_MSI
- jobs:
- - template: windows-release/stage-test-msi.yml
+ - ${{ if eq(parameters.DoMSIX, 'true') }}:
+ - stage: Layout_MSIX
+ displayName: Generate MSIX layouts
+ dependsOn: Sign
+ jobs:
+ - template: windows-release/stage-layout-msix.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
 
- - ${{ if eq(parameters.DoPublish, 'true') }}:
- - stage: PublishPyDotOrg
- displayName: Publish to python.org
- dependsOn: ['Test_MSI', 'Test']
+ - stage: Pack_MSIX
+ displayName: Package MSIX
+ dependsOn: Layout_MSIX
 jobs:
- - template: windows-release/stage-publish-pythonorg.yml
+ - template: windows-release/stage-pack-msix.yml
 
- - stage: PublishNuget
- displayName: Publish to nuget.org
- dependsOn: Test
+ - ${{ if eq(parameters.DoMSI, 'true') }}:
+ - stage: Build_MSI
+ displayName: Build MSI installer
+ dependsOn: Sign
 jobs:
- - template: windows-release/stage-publish-nugetorg.yml
+ - template: windows-release/stage-msi.yml
+ parameters:
+ ARM64TclTk: ${{ parameters.ARM64TclTk }}
 
- - stage: PublishStore
- displayName: Publish to Store
- dependsOn: Pack_MSIX
+ - stage: Test_MSI
+ displayName: Test MSI installer
+ dependsOn: Build_MSI
 jobs:
- - template: windows-release/stage-publish-store.yml
+ - template: windows-release/stage-test-msi.yml
+
+ - ${{ if eq(parameters.DoPublish, 'true') }}:
+ - ${{ if eq(parameters.DoMSI, 'true') }}:
+ - stage: PublishPyDotOrg
+ displayName: Publish to python.org
+ dependsOn: ['Test_MSI', 'Test']
+ jobs:
+ - template: windows-release/stage-publish-pythonorg.yml
+
+ - ${{ if eq(parameters.DoNuget, 'true') }}:
+ - stage: PublishNuget
+ displayName: Publish to nuget.org
+ ${{ if eq(parameters.DoMSI, 'true') }}:
+ dependsOn: ['Test_MSI', 'Test']
+ ${{ else }}:
+ dependsOn: 'Test'
+ jobs:
+ - template: windows-release/stage-publish-nugetorg.yml
+
+ - ${{ if eq(parameters.DoMSIX, 'true') }}:
+ - stage: PublishStore
+ displayName: Publish to Store
+ ${{ if eq(parameters.DoMSI, 'true') }}:
+ dependsOn: ['Test_MSI', 'Pack_MSIX']
+ ${{ else }}:
+ dependsOn: 'Pack_MSIX'
+ jobs:
+ - template: windows-release/stage-publish-store.yml
 
 - ${{ else }}:
 - stage: PublishExisting
 displayName: Publish existing build
 dependsOn: []
- condition: and(succeeded(), eq(variables['DoPublish'], 'true'))
 jobs:
- - template: windows-release/stage-publish-pythonorg.yml
- parameters:
- BuildToPublish: ${{ parameters.BuildToPublish }}
+ - ${{ if eq(parameters.DoMSI, 'true') }}:
+ - template: windows-release/stage-publish-pythonorg.yml
+ parameters:
+ BuildToPublish: ${{ parameters.BuildToPublish }}
 
- - template: windows-release/stage-publish-nugetorg.yml
- parameters:
- BuildToPublish: ${{ parameters.BuildToPublish }}
+ - ${{ if eq(parameters.DoNuget, 'true') }}:
+ - template: windows-release/stage-publish-nugetorg.yml
+ parameters:
+ BuildToPublish: ${{ parameters.BuildToPublish }}
 
- - template: windows-release/stage-publish-store.yml
- parameters:
- BuildToPublish: ${{ parameters.BuildToPublish }}
+ - ${{ if eq(parameters.DoMSIX, 'true') }}:
+ - template: windows-release/stage-publish-store.yml
+ parameters:
+ BuildToPublish: ${{ parameters.BuildToPublish }}
diff --git a/.azure-pipelines/windows-release/stage-pack-nuget.yml b/.azure-pipelines/windows-release/stage-pack-nuget.yml
index 8dfea382c3562..85b44e389ab5d 100644
--- a/.azure-pipelines/windows-release/stage-pack-nuget.yml
+++ b/.azure-pipelines/windows-release/stage-pack-nuget.yml
@@ -32,8 +32,23 @@ jobs:
 inputs:
 versionSpec: '>=5.0'
 
- - powershell: |
- nuget pack "$(Build.BinariesDirectory)\layout\python.nuspec" -OutputDirectory $(Build.ArtifactStagingDirectory) -NoPackageAnalysis -NonInteractive
+ - powershell: >
+ nuget pack
+ "$(Build.BinariesDirectory)\layout\python.nuspec"
+ -OutputDirectory $(Build.ArtifactStagingDirectory)
+ -NoPackageAnalysis
+ -NonInteractive
+ condition: and(succeeded(), not(variables['OverrideNugetVersion']))
+ displayName: 'Create nuget package'
+
+ - powershell: >
+ nuget pack
+ "$(Build.BinariesDirectory)\layout\python.nuspec"
+ -OutputDirectory $(Build.ArtifactStagingDirectory)
+ -NoPackageAnalysis
+ -NonInteractive
+ -Version "$(OverrideNugetVersion)"
+ condition: and(succeeded(), variables['OverrideNugetVersion'])
 displayName: 'Create nuget package'
 
 - powershell: |
diff --git a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
index a8855f0ace8f5..abb9d0f0fd485 100644
--- a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
+++ b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
@@ -4,7 +4,7 @@ parameters:
 jobs:
 - job: Publish_Nuget
 displayName: Publish Nuget packages
- condition: and(succeeded(), eq(variables['DoNuget'], 'true'))
+ condition: and(succeeded(), eq(variables['DoNuget'], 'true'), ne(variables['SkipNugetPublish'], 'true'))
 
 pool:
 vmImage: windows-2022
@@ -38,7 +38,7 @@ jobs:
 - powershell: 'gci pythonarm*.nupkg | %{ Write-Host "Not publishing: $($_.Name)"; gi $_ } | del'
 displayName: 'Prevent publishing ARM64 packages'
 workingDirectory: '$(Build.BinariesDirectory)\nuget'
- condition: and(succeeded(), eq(variables['PublishARM64'], 'true'))
+ condition: and(succeeded(), ne(variables['PublishARM64'], 'true'))
 
 - task: NuGetCommand at 2
 displayName: Push packages
diff --git a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
index be4ef9e0cca89..953f728ade381 100644
--- a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
+++ b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
@@ -4,7 +4,7 @@ parameters:
 jobs:
 - job: Publish_Python
 displayName: Publish python.org packages
- condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), eq(variables['DoEmbed'], 'true')))
+ condition: and(succeeded(), eq(variables['DoMSI'], 'true'), eq(variables['DoEmbed'], 'true'), ne(variables['SkipPythonOrgPublish'], 'true'))
 
 pool:
 #vmImage: windows-2022
@@ -81,7 +81,7 @@ jobs:
 - powershell: 'gci *embed-arm*.zip | %{ Write-Host "Not publishing: $($_.Name)"; gi $_ } | del'
 displayName: 'Prevent publishing ARM64 packages'
 workingDirectory: '$(Build.BinariesDirectory)\embed'
- condition: and(succeeded(), eq(variables['PublishARM64'], 'true'))
+ condition: and(succeeded(), ne(variables['PublishARM64'], 'true'))
 
 
 - template: ./gpg-sign.yml
diff --git a/.azure-pipelines/windows-release/stage-publish-store.yml b/.azure-pipelines/windows-release/stage-publish-store.yml
index f3d4c80be9138..0eae21edaa7f8 100644
--- a/.azure-pipelines/windows-release/stage-publish-store.yml
+++ b/.azure-pipelines/windows-release/stage-publish-store.yml
@@ -4,7 +4,7 @@ parameters:
 jobs:
 - job: Publish_Store
 displayName: Publish Store packages
- condition: and(succeeded(), eq(variables['DoMSIX'], 'true'))
+ condition: and(succeeded(), eq(variables['DoMSIX'], 'true'), ne(variables['SkipMSIXPublish'], 'true'))
 
 pool:
 vmImage: windows-2022


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /