]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix some Windows release build script issues (GH-31931)
authorSteve Dower <steve.dower@python.org>
Wed, 16 Mar 2022 15:23:35 +0000 (15:23 +0000)
committerGitHub <noreply@github.com>
Wed, 16 Mar 2022 15:23:35 +0000 (15:23 +0000)
* 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

.azure-pipelines/windows-release.yml
.azure-pipelines/windows-release/stage-pack-nuget.yml
.azure-pipelines/windows-release/stage-publish-nugetorg.yml
.azure-pipelines/windows-release/stage-publish-pythonorg.yml
.azure-pipelines/windows-release/stage-publish-store.yml

index ae2d1b9da1321dbadd3295802000ff9e76d58a0c..096ecadc79eb75c514f1c6eec487ae3411bec3ba 100644 (file)
@@ -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 }}
index 8dfea382c356221dc85f675f777333ae2a755d79..85b44e389ab5d1a478b9f3d0bb9ded71e88838df 100644 (file)
@@ -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: |
index a8855f0ace8f5922389a0a1fbec2a8aa1acc1af5..abb9d0f0fd485a48524d0737fb20fe7dd8cb771b 100644 (file)
@@ -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@2
     displayName: Push packages
index be4ef9e0cca891ee6877873f8fd441ada34a5885..953f728ade38110fcee2a577a8fa8ab8867635a3 100644 (file)
@@ -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
index f3d4c80be91384d20f5b5e3918c4db5f03bbc16e..0eae21edaa7f8e89cd8e1e5927690e8204118ba9 100644 (file)
@@ -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