summaryrefslogtreecommitdiffstats
path: root/.azure-pipelines/windows-release.yml
blob: 3d072e3b43e17e06d680f2c10cebdebd3872c200 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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