Merge "Update jenkins-job-builder to 2.2.1"
[releng.git] / jjb / fuel / fuel-verify-jobs.yaml
1 ---
2 - project:
3     name: 'fuel-verify-jobs'
4
5     project: 'fuel'
6
7     installer: 'fuel'
8     #####################################
9     # branch definitions
10     #####################################
11     stream:
12       - master:
13           branch: '{stream}'
14           gs-pathname: ''
15           disabled: false
16       - gambia:
17           branch: 'stable/{stream}'
18           gs-pathname: '/{stream}'
19           disabled: false
20     #####################################
21     # cluster architectures
22     #####################################
23     arch_tag:
24       - 'amd64':
25           slave-label: 'fuel'
26           functest-suite-label: 'fuel'
27       - 'arm64':
28           slave-label: 'armband'
29           functest-suite-label: 'fuel-armband'
30     #####################################
31     # cluster types
32     #####################################
33     type:
34       - 'virtual'
35       - 'baremetal'
36     #####################################
37     # patch verification phases
38     #####################################
39     phase:
40       - 'docker-build'
41       - 'deploy'
42     #####################################
43     # jobs
44     #####################################
45     jobs:
46       - 'fuel-verify-{type}-{arch_tag}-{stream}'
47       - 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}'
48 #####################################
49 # job templates
50 #####################################
51 - job-template:
52     name: 'fuel-verify-{type}-{arch_tag}-{stream}'
53
54     project-type: multijob
55
56     disabled: '{obj:disabled}'
57
58     concurrent: true
59
60     properties:
61       - logrotate-default
62       - throttle:
63           enabled: true
64           max-total: 4
65           option: 'project'
66       - build-blocker:
67           use-build-blocker: true
68           blocking-jobs:
69             - 'fuel-os-.*?-daily-.*'
70             - 'fuel-verify-.*'
71           blocking-level: 'NODE'
72
73     scm:
74       - git-scm-gerrit
75
76     wrappers:
77       - ssh-agent-wrapper
78       - timeout:
79           timeout: 360
80           fail: true
81
82     triggers:
83       - 'fuel-verify-{type}-{arch_tag}-trigger':
84           project: '{project}'
85           branch: '{branch}'
86
87     parameters:
88       - project-parameter:
89           project: '{project}'
90           branch: '{branch}'
91       - '{slave-label}-{type}-defaults':
92           installer: '{installer}'
93       - '{installer}-defaults':
94           gs-pathname: '{gs-pathname}'
95
96     builders:
97       - 'fuel-verify-set-scenario-macro'
98       - inject:
99           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/scenario.properties"
100       - description-setter:
101           description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
102       - multijob:
103           name: docker-build
104           condition: SUCCESSFUL
105           projects:
106             - name: 'fuel-verify-docker-build-{type}-{arch_tag}-{stream}'
107               current-parameters: false
108               predefined-parameters: |
109                 BRANCH=$BRANCH
110                 GERRIT_REFSPEC=$GERRIT_REFSPEC
111                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
112                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
113               node-parameters: true
114               kill-phase-on: FAILURE
115               abort-all-job: true
116
117       - multijob:
118           name: deploy
119           condition: SUCCESSFUL
120           projects:
121             - name: 'fuel-verify-deploy-{type}-{arch_tag}-{stream}'
122               current-parameters: false
123               predefined-parameters: |
124                 MCP_DOCKER_TAG={arch_tag}-verify
125                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
126                 BRANCH=$BRANCH
127                 GERRIT_REFSPEC=$GERRIT_REFSPEC
128                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
129                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
130               node-parameters: true
131               kill-phase-on: FAILURE
132               abort-all-job: true
133
134       - multijob:
135           name: smoke-test
136           condition: SUCCESSFUL
137           projects:
138             # Use Functest job definition from jjb/functest/functest-daily-jobs
139             - name: 'functest-{functest-suite-label}-{type}-suite-{stream}'
140               current-parameters: false
141               predefined-parameters: |
142                 FUNCTEST_MODE=tier
143                 FUNCTEST_TIER=healthcheck
144                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
145                 BRANCH=$BRANCH
146                 GERRIT_REFSPEC=$GERRIT_REFSPEC
147                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
148                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
149               node-parameters: true
150               enable-condition: "def m = ! ('$NODE_LABELS' =~ /armband-virtual/)"
151               kill-phase-on: NEVER
152               abort-all-job: true
153
154 - job-template:
155     name: 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}'
156
157     disabled: '{obj:disabled}'
158
159     concurrent: true
160
161     properties:
162       - logrotate-default
163       - throttle:
164           enabled: true
165           max-total: 2
166           max-per-node: 1
167           option: 'project'
168       - build-blocker:
169           use-build-blocker: true
170           blocking-jobs:
171             - 'fuel-verify-docker-build-.*'
172             - 'fuel-verify-deploy-.*'
173           blocking-level: 'NODE'
174
175     scm:
176       - git-scm-gerrit
177
178     wrappers:
179       - ssh-agent-wrapper
180       - timeout:
181           timeout: 360
182           fail: true
183
184     parameters:
185       - project-parameter:
186           project: '{project}'
187           branch: '{branch}'
188       - '{slave-label}-{type}-defaults':
189           installer: '{installer}'
190       - '{installer}-defaults':
191           gs-pathname: '{gs-pathname}'
192
193     builders:
194       - description-setter:
195           description: "Built on $NODE_NAME"
196       - '{project}-verify-{phase}-macro'
197 ########################
198 # trigger macros
199 ########################
200 - trigger:
201     name: 'fuel-verify-virtual-amd64-trigger'
202     triggers:
203       - gerrit: &fuel_verify_virtual_amd64_trigger
204           server-name: 'gerrit.opnfv.org'
205           trigger-on:
206             - patchset-created-event:
207                 exclude-drafts: 'false'
208                 exclude-trivial-rebase: 'false'
209                 exclude-no-code-change: 'false'
210             - draft-published-event
211             - comment-added-contains-event:
212                 comment-contains-value: '(recheck|reverify)(\s|$|:\s*[-\w]+-noha)'
213           projects:
214             - project-compare-type: 'ANT'
215               project-pattern: '{project}'
216               branches:
217                 - branch-compare-type: 'ANT'
218                   branch-pattern: '**/{branch}'
219               file-paths:
220                 - compare-type: ANT
221                   pattern: 'ci/**'
222                 - compare-type: ANT
223                   pattern: 'mcp/**'
224               disable-strict-forbidden-file-verification: 'true'
225               forbidden-file-paths:
226                 - compare-type: ANT
227                   pattern: 'docs/**'
228           readable-message: true
229 - trigger:
230     name: 'fuel-verify-virtual-arm64-trigger'
231     triggers:
232       - gerrit:
233           <<: *fuel_verify_virtual_amd64_trigger
234 - trigger:
235     name: 'fuel-verify-baremetal-amd64-trigger'
236     triggers:
237       - gerrit: &fuel_verify_baremetal_amd64_trigger
238           <<: *fuel_verify_virtual_amd64_trigger
239           trigger-on:
240             - comment-added-contains-event:
241                 comment-contains-value: '(recheck|reverify):\s*[-\w]+-ha'
242 - trigger:
243     name: 'fuel-verify-baremetal-arm64-trigger'
244     triggers:
245       - gerrit:
246           <<: *fuel_verify_baremetal_amd64_trigger
247           skip-vote:
248             successful: true
249             failed: true
250             unstable: true
251             notbuilt: true
252 #####################################
253 # builder macros
254 #####################################
255 - builder:
256     name: 'fuel-verify-set-scenario-macro'
257     builders:
258       - shell:
259           !include-raw: ./fuel-set-scenario.sh
260 - builder:
261     name: 'fuel-verify-deploy-macro'
262     builders:
263       - shell:
264           !include-raw: ./fuel-deploy.sh
265 - builder:
266     name: 'fuel-verify-docker-build-macro'
267     builders:
268       - shell: |
269           #!/bin/bash -ex
270           sudo -E ./ci/build.sh 'verify' ''