-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
170 lines (157 loc) · 6.57 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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
parameters:
- name: Value
type: boolean
default: true
pool:
vmImage: ubuntu-latest
stages:
- stage: SetupStage
displayName: 'Setup Stage'
jobs:
- job: SetupJob
displayName: 'Setup Job'
steps:
- checkout: none
- bash: |
set -e # need to avoid trailing " being added to the variable https://github.com/microsoft/azure-pipelines-tasks/issues/10331
echo "##vso[task.setvariable variable=MyVar;isOutput=true]${{parameters.value}}"
name: SetupStep
displayName: 'Setup Step'
- stage: Dummy_Stage
jobs:
- job: DummyJob
steps:
- bash: echo "A dummy stage"
- stage: Show_No_Dependancy
displayName: 'Show Stage no dependancy'
variables:
localMyVarViaStageDependancies : $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]
localMyVarViaDependancies : $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]
jobs:
- job: Job
displayName: 'Show Job no dependancy'
steps:
- bash: |
echo "localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)"
echo "localMyVarViaDependancies - $(localMyVarViaDependancies)"
# echo "StageDependancies - $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]"
# echo "Dependancies - $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]"
- stage: Show_No_Dependancy_Condition
condition: and (succeeded(), eq (dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar'], 'True'))
displayName: 'Show Stage no dependancy'
jobs:
- job: Job
displayName: 'Show Job no dependancy'
steps:
- bash: echo "I ran based on stage condition"
- stage: Show_With_Dependancy
displayName: 'Show Stage With dependancy'
dependsOn:
- SetupStage
variables:
localMyVarViaStageDependancies : $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]
localMyVarViaDependancies : $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]
jobs:
- job: Job
displayName: 'Show Job With dependancy'
steps:
- bash: |
echo "localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)"
echo "localMyVarViaDependancies - $(localMyVarViaDependancies)"
# echo "StageDependancies - $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]"
# echo "Dependancies - $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]"
- job: waitForValidation
displayName: Wait for external validation
pool: server
timeoutInMinutes: 4320 # job times out in 3 days
steps:
- task: ManualValidation@0
timeoutInMinutes: 1 # task times out in 1 minute
inputs:
notifyUsers: |
instructions: 'localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)'
onTimeout: 'resume'
- stage: Show_With_Dependancy_Condition
condition: and (succeeded(), eq (dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar'], 'True'))
displayName: 'Show Stage With dependancy Condition'
dependsOn:
- SetupStage
variables:
localMyVarViaStageDependancies : $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]
localMyVarViaDependancies : $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]
jobs:
- job: Job
displayName: 'Show Job With dependancy'
steps:
- bash: |
echo "localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)"
echo "localMyVarViaDependancies - $(localMyVarViaDependancies)"
# echo "StageDependancies - $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]"
# echo "Dependancies - $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]"
- job: waitForValidation
displayName: Wait for external validation
pool: server
timeoutInMinutes: 4320 # job times out in 3 days
steps:
- task: ManualValidation@0
timeoutInMinutes: 1 # task times out in 1 minute
inputs:
notifyUsers: |
instructions: 'localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)'
onTimeout: 'resume'
- stage: Post_Show_With_Dependancy_Condition
dependsOn:
- Show_With_Dependancy_Condition
jobs:
- job: DummyJob
steps:
- bash: echo "A dummy stage"
- stage: Post_Show_With_Dependancy_Condition_Handle_Skip
condition: and( not(failed()), not(canceled()))
dependsOn:
- Show_With_Dependancy_Condition
jobs:
- job: DummyJob
steps:
- bash: echo "A dummy stage"
- stage: Show_With_Dependancy_Condition_Job
displayName: 'Show Stage With dependancy Condition'
dependsOn:
- SetupStage
variables:
localMyVarViaStageDependancies : $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]
localMyVarViaDependancies : $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]
jobs:
- job: Job
condition: and (succeeded(),
eq (variables.localMyVarViaStageDependancies, 'True'))
displayName: 'Show Job With dependancy'
steps:
- bash: |
echo "localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)"
echo "localMyVarViaDependancies - $(localMyVarViaDependancies)"
# echo "StageDependancies - $[stageDependencies.SetupStage.SetupJob.outputs['SetupStep.MyVar']]"
# echo "Dependancies - $[dependencies.SetupStage.outputs['SetupJob.SetupStep.MyVar']]"
- job: waitForValidation
condition: and (succeeded(),
eq (variables.localMyVarViaStageDependancies, 'True'))
displayName: Wait for external validation
pool: server
timeoutInMinutes: 4320 # job times out in 3 days
steps:
- task: ManualValidation@0
timeoutInMinutes: 1 # task times out in 1 minute
inputs:
notifyUsers: |
instructions: 'localMyVarViaStageDependancies - $(localMyVarViaStageDependancies)'
onTimeout: 'resume'
- stage: Post_Show_With_Dependancy_Condition_Job
dependsOn:
- Show_With_Dependancy_Condition_Job
jobs:
- job: DummyJob
steps:
- bash: echo "A dummy stage"