130 lines
3.9 KiB
YAML
130 lines
3.9 KiB
YAML
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
|