name: Release_$(Build.SourceBranchName)_$(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) variables: __RealSigningCertificate: 'Python Software Foundation' # QUEUE TIME VARIABLES # GitRemote: python # SourceTag: # DoPGO: true # SigningCertificate: 'Python Software Foundation' # SigningDescription: 'Built: $(Build.BuildNumber)' # DoLayout: true # DoMSIX: true # DoNuget: true # DoEmbed: true # DoMSI: true # DoPublish: false # PyDotOrgUsername: '' # PyDotOrgServer: '' # BuildToPublish: '' trigger: none pr: none stages: - stage: Build displayName: Build binaries condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-build.yml - stage: Sign displayName: Sign binaries dependsOn: Build condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-sign.yml - stage: Layout displayName: Generate layouts dependsOn: Sign condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-layout-full.yml - template: windows-release/stage-layout-embed.yml - template: windows-release/stage-layout-nuget.yml - stage: Pack dependsOn: Layout condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-pack-nuget.yml - stage: Test dependsOn: Pack condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - 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(), and(eq(variables['DoMSIX'], 'true'), not(variables['BuildToPublish']))) jobs: - template: windows-release/stage-layout-msix.yml - stage: Pack_MSIX displayName: Package MSIX dependsOn: Layout_MSIX condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-pack-msix.yml - stage: Build_MSI displayName: Build MSI installer dependsOn: Sign condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), not(variables['BuildToPublish']))) jobs: - template: windows-release/stage-msi.yml - stage: Test_MSI displayName: Test MSI installer dependsOn: Build_MSI condition: and(succeeded(), not(variables['BuildToPublish'])) jobs: - template: windows-release/stage-test-msi.yml - stage: PublishPyDotOrg displayName: Publish to python.org dependsOn: ['Test_MSI', 'Test'] condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) jobs: - template: windows-release/stage-publish-pythonorg.yml - stage: PublishNuget displayName: Publish to nuget.org dependsOn: Test condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) jobs: - template: windows-release/stage-publish-nugetorg.yml - stage: PublishStore displayName: Publish to Store dependsOn: Pack_MSIX condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) jobs: - template: windows-release/stage-publish-store.yml - stage: PublishExistingPyDotOrg displayName: Publish existing build to python.org dependsOn: [] condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) jobs: - template: windows-release/stage-publish-pythonorg.yml - stage: PublishExistingNuget displayName: Publish existing build to nuget.org dependsOn: [] condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) jobs: - template: windows-release/stage-publish-nugetorg.yml - stage: PublishExistingStore displayName: Publish existing build to Store dependsOn: [] condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) jobs: - template: windows-release/stage-publish-store.yml