1name: Release_$(Build.SourceBranchName)_$(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) 2 3variables: 4 __RealSigningCertificate: 'Python Software Foundation' 5# QUEUE TIME VARIABLES 6# GitRemote: python 7# SourceTag: 8# DoPGO: true 9# SigningCertificate: 'Python Software Foundation' 10# SigningDescription: 'Built: $(Build.BuildNumber)' 11# DoLayout: true 12# DoMSIX: true 13# DoNuget: true 14# DoEmbed: true 15# DoMSI: true 16# DoPublish: false 17# PyDotOrgUsername: '' 18# PyDotOrgServer: '' 19# BuildToPublish: '' 20 21trigger: none 22pr: none 23 24stages: 25- stage: Build 26 displayName: Build binaries 27 condition: and(succeeded(), not(variables['BuildToPublish'])) 28 jobs: 29 - template: windows-release/stage-build.yml 30 31- stage: Sign 32 displayName: Sign binaries 33 dependsOn: Build 34 condition: and(succeeded(), not(variables['BuildToPublish'])) 35 jobs: 36 - template: windows-release/stage-sign.yml 37 38- stage: Layout 39 displayName: Generate layouts 40 dependsOn: Sign 41 condition: and(succeeded(), not(variables['BuildToPublish'])) 42 jobs: 43 - template: windows-release/stage-layout-full.yml 44 - template: windows-release/stage-layout-embed.yml 45 - template: windows-release/stage-layout-nuget.yml 46 47- stage: Pack 48 dependsOn: Layout 49 condition: and(succeeded(), not(variables['BuildToPublish'])) 50 jobs: 51 - template: windows-release/stage-pack-nuget.yml 52 53- stage: Test 54 dependsOn: Pack 55 condition: and(succeeded(), not(variables['BuildToPublish'])) 56 jobs: 57 - template: windows-release/stage-test-embed.yml 58 - template: windows-release/stage-test-nuget.yml 59 60- stage: Layout_MSIX 61 displayName: Generate MSIX layouts 62 dependsOn: Sign 63 condition: and(succeeded(), and(eq(variables['DoMSIX'], 'true'), not(variables['BuildToPublish']))) 64 jobs: 65 - template: windows-release/stage-layout-msix.yml 66 67- stage: Pack_MSIX 68 displayName: Package MSIX 69 dependsOn: Layout_MSIX 70 condition: and(succeeded(), not(variables['BuildToPublish'])) 71 jobs: 72 - template: windows-release/stage-pack-msix.yml 73 74- stage: Build_MSI 75 displayName: Build MSI installer 76 dependsOn: Sign 77 condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), not(variables['BuildToPublish']))) 78 jobs: 79 - template: windows-release/stage-msi.yml 80 81- stage: Test_MSI 82 displayName: Test MSI installer 83 dependsOn: Build_MSI 84 condition: and(succeeded(), not(variables['BuildToPublish'])) 85 jobs: 86 - template: windows-release/stage-test-msi.yml 87 88- stage: PublishPyDotOrg 89 displayName: Publish to python.org 90 dependsOn: ['Test_MSI', 'Test'] 91 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) 92 jobs: 93 - template: windows-release/stage-publish-pythonorg.yml 94 95- stage: PublishNuget 96 displayName: Publish to nuget.org 97 dependsOn: Test 98 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) 99 jobs: 100 - template: windows-release/stage-publish-nugetorg.yml 101 102- stage: PublishStore 103 displayName: Publish to Store 104 dependsOn: Pack_MSIX 105 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), not(variables['BuildToPublish']))) 106 jobs: 107 - template: windows-release/stage-publish-store.yml 108 109 110- stage: PublishExistingPyDotOrg 111 displayName: Publish existing build to python.org 112 dependsOn: [] 113 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) 114 jobs: 115 - template: windows-release/stage-publish-pythonorg.yml 116 117- stage: PublishExistingNuget 118 displayName: Publish existing build to nuget.org 119 dependsOn: [] 120 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) 121 jobs: 122 - template: windows-release/stage-publish-nugetorg.yml 123 124- stage: PublishExistingStore 125 displayName: Publish existing build to Store 126 dependsOn: [] 127 condition: and(succeeded(), and(eq(variables['DoPublish'], 'true'), variables['BuildToPublish'])) 128 jobs: 129 - template: windows-release/stage-publish-store.yml 130