forked from nventive/UnoApplicationTemplate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.azure-pipelines.yml
149 lines (135 loc) · 5.14 KB
/
.azure-pipelines.yml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Use this to schedule a build at defined days and times
# schedules:
# - cron: "30 08 * * Mon-Fri" # Format is "Minutes Hours DayOfMonth Month DayOfWeek" in UTC (that's why 08 is 3h EST)
# displayName: 'Nightly weekdays build - 3:30 EST'
# always: false # If nothing changed, don't start a new run.
# branches:
# include:
# - main
# - develop
# - release/*
# - feature/*
pr:
branches:
include:
- main
- release/*
- feature/*
trigger:
branches:
include:
- main
variables:
#-if false
- name: IsReleaseBranch
value: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
#-endif
- template: build/variables.yml
stages:
- stage: Commit_Validation
dependsOn: []
jobs:
- template: build/stage-commit-validation.yaml
#-if false
# This special if is used to remove those Dotnet_New stages for generated application.
- stage: Dotnet_New_GeneratedApp
dependsOn: Commit_Validation
jobs:
- template: .template.config/build/stage-donetnew.yaml
- stage: Build_Staging_GeneratedApp
dependsOn: Dotnet_New_GeneratedApp
jobs:
- template: build/stage-build.yml
parameters:
pathToSrc: '$(Pipeline.Workspace)/GeneratedApp/src'
solutionName: 'GeneratedApp'
pathToInfoPlist: '$(Pipeline.Workspace)/GeneratedApp/src/app/GeneratedApp.Mobile/iOS/Info.plist'
pathToAndroidManifest: '$(Pipeline.Workspace)/GeneratedApp/src/app/GeneratedApp.Mobile/Android/AndroidManifest.xml'
applicationEnvironment: Generated_Staging
androidKeyStoreFile: $(InternalKeystore)
androidVariableGroup: 'ApplicationTemplate.Distribution.Internal.Android'
iosProvisioningProfileFile: $(InternalProvisioningProfile)
iosCertificateFile: $(InternalCertificate)
iosVariableGroup: 'ApplicationTemplate.Distribution.Internal.iOS'
- stage: Publish_Template_Package
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'), eq(variables['IsReleaseBranch'], 'true'))
dependsOn:
- Build_Staging_GeneratedApp
- Build_Staging
jobs:
- template: .template.config/build/stage-publish-template.yml
#-endif
- stage: Build_Staging
dependsOn: Commit_Validation
jobs:
- template: build/stage-build.yml
parameters:
applicationEnvironment: Staging
androidKeyStoreFile: $(InternalKeystore)
androidVariableGroup: 'ApplicationTemplate.Distribution.Internal.Android'
iosProvisioningProfileFile: $(InternalProvisioningProfile)
iosCertificateFile: $(InternalCertificate)
iosVariableGroup: 'ApplicationTemplate.Distribution.Internal.iOS'
BannerVersionNameText: "STAGING"
- stage: AppCenter_TestFlight_Staging
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'))
dependsOn: Build_Staging
jobs:
- template: build/stage-release-appcenter.yml
parameters:
applicationEnvironment: Staging
deploymentEnvironment: AppCenter
appCenterWindowsSlug: $(AppCenterWindowsSlug)
appCenteriOSSlug: $(AppCenteriOSSlug)
appCenterAndroidSlug: $(AppCenterAndroidSlug)
androidKeyStoreFile: $(InternalKeystore)
androidVariableGroup: 'ApplicationTemplate.Distribution.Internal.Android'
appCenterServiceConnectionName: $(AppCenterServiceConnection)
appCenterDistributionGroup: $(AppCenterDistributionGroup)
- template: build/stage-release-appstore.yml
parameters:
applicationEnvironment: Staging
deploymentEnvironment: TestFlight
- stage: Build_Production
dependsOn: Build_Staging
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'))
jobs:
- template: build/stage-build.yml
parameters:
applicationEnvironment: Production
androidKeyStoreFile: $(GooglePlayKeystore)
androidVariableGroup: 'ApplicationTemplate.Distribution.GooglePlay'
iosProvisioningProfileFile: $(AppStoreProvisioningProfile)
iosCertificateFile: $(AppStoreCertificate)
iosVariableGroup: 'ApplicationTemplate.Distribution.AppStore'
- stage: AppCenter_Production
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'))
dependsOn: Build_Production
jobs:
- template: build/stage-release-appcenter.yml
parameters:
applicationEnvironment: Production
deploymentEnvironment: 'AppCenter Prod'
appCenterWindowsSlug: $(AppCenterWindowsSlug_Production)
appCenteriOSSlug: $(AppCenteriOSSlug_Production)
appCenterAndroidSlug: $(AppCenterAndroidSlug_Production)
androidKeyStoreFile: $(GooglePlayKeystore)
androidVariableGroup: 'ApplicationTemplate.Distribution.GooglePlay'
appCenterServiceConnectionName: $(AppCenterServiceConnection)
appCenterDistributionGroup: $(AppCenterDistributionGroup)
- stage: AppStore
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'))
dependsOn: Build_Production
jobs:
- template: build/stage-release-appstore.yml
parameters:
applicationEnvironment: Production
deploymentEnvironment: AppStore
- stage: GooglePlay
condition: and(succeeded(), eq(variables['IsLightBuild'], 'false'))
dependsOn: Build_Production
jobs:
- template: build/stage-release-googleplay.yml
parameters:
applicationEnvironment: Production
deploymentEnvironment: GooglePlay