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
This commit is contained in:
Steve Dower 2022-03-16 15:23:35 +00:00 committed by GitHub
parent e707ceb6e4
commit d56a237e16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 84 additions and 58 deletions

View 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 }}
- ${{ 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 }}
- stage: Pack_MSIX
displayName: Package MSIX
dependsOn: Layout_MSIX
jobs:
- template: windows-release/stage-pack-msix.yml
- 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 }}
- ${{ if eq(parameters.DoMSI, 'true') }}:
- stage: Build_MSI
displayName: Build MSI installer
dependsOn: Sign
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
- stage: Test_MSI
displayName: Test MSI installer
dependsOn: Build_MSI
jobs:
- template: windows-release/stage-test-msi.yml
- ${{ if eq(parameters.DoPublish, 'true') }}:
- stage: PublishPyDotOrg
displayName: Publish to python.org
dependsOn: ['Test_MSI', 'Test']
jobs:
- template: windows-release/stage-publish-pythonorg.yml
- ${{ if eq(parameters.DoMSI, 'true') }}:
- stage: PublishPyDotOrg
displayName: Publish to python.org
dependsOn: ['Test_MSI', 'Test']
jobs:
- template: windows-release/stage-publish-pythonorg.yml
- stage: PublishNuget
displayName: Publish to nuget.org
dependsOn: Test
jobs:
- template: windows-release/stage-publish-nugetorg.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
- stage: PublishStore
displayName: Publish to Store
dependsOn: Pack_MSIX
jobs:
- template: windows-release/stage-publish-store.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 }}

View 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: |

View 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

View 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

View 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