Fix phase jobs for cloud infra jobs
[infra/cicd.git] / jjb / cloud-infra / cloud-infra-periodic-onap.yaml
1 ---
2 #
3 # ============LICENSE_START=======================================================
4 #  Copyright (C) 2019 Nordix Foundation.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20
21 #--------------------------------------------------------------------------------------
22 # The jobs declared in this JJB configuration file are used for verifying cloud-infra
23 # engine from the tip of the master branch periodically to check the stability of it.
24 #
25 # These jobs are set to run on slaves with label vpod-deploy-ubuntu1604.
26 # The slaves have
27 #   - Ubuntu1604 as the base distro
28 #   - nested virtualization
29 #   - internet access
30 #   - passwordless sudo
31 #   - 16 CPUs/32GB RAM/200 GB Disk
32 #   - docker, git vim curl wget zip unzip chrony apt-transport-https ca-certificates curl
33 #     gnupg-agent software-properties-common docker-ce docker-ce-cli containerd.io openjdk-8-jre
34 #
35 # The slaves should not have a cloud infra scenario deployed on them.
36 #--------------------------------------------------------------------------------------
37
38 - project:
39     name: 'cloud-infra-periodic-onap'
40
41     project: 'infra/engine'
42
43     onap-branch:
44       - 'dublin':
45           nordix-branch: master
46           onap-version: 4.0.0-ONAP
47           onap-flavor: full
48           engine-version: master
49           engine-refspec: master
50           deploy-scenario-version: master
51           deploy-scenario-refspec: master
52           disabled: false
53       - 'master':
54           nordix-branch: master
55           onap-version: master
56           onap-flavor: full
57           engine-version: master
58           engine-refspec: master
59           deploy-scenario-version: master
60           deploy-scenario-refspec: master
61           disabled: true
62
63     distro:
64       - ubuntu1804
65
66     deploy-scenario:
67       - onap-oom-nofeature
68
69     type:
70       - cloud:
71           provisioner-type: heat
72           installer-type: kubespray
73           slave-label: 'jumphost-onap-ubuntu1804'
74
75     phase:
76       - onap-deploy:
77           build-timeout: 150
78       - oom-healthcheck:
79           build-timeout: 30
80           test-type: oom-healthcheck
81       - onap-healthcheck:
82           build-timeout: 30
83           test-type: onap-healthcheck
84       - promote-onap:
85           build-timeout: 5
86
87     jobs:
88       - '{deploy-scenario}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
89       - '{phase}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
90
91 - job-template:
92     name: '{deploy-scenario}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
93
94     project-type: multijob
95
96     disabled: '{obj:disabled}'
97
98     concurrent: true
99
100     parameters:
101       - project-parameters:
102           project: '{project}'
103           branch: '{nordix-branch}'
104       - nordix-gerrit-parameters
105       - label:
106           name: SLAVE_LABEL
107           default: '{slave-label}'
108           description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
109       - string:
110           name: DISTRO
111           default: '{distro}'
112           description: 'Distribution to use for configuring target nodes (networking etc.)'
113       - string:
114           name: PROVISIONER_TYPE
115           default: '{provisioner-type}'
116           description: 'Provisioner to use for provisioning nodes'
117       - string:
118           name: INSTALLER_TYPE
119           default: '{installer-type}'
120           description: 'Installer to use for deploying the scenario'
121       - string:
122           name: DEPLOY_SCENARIO
123           default: '{deploy-scenario}'
124           description: 'Scenario to deploy and test'
125       - string:
126           name: HEAT_ENVIRONMENT_FILE
127           default: "file://$WORKSPACE/.cache/repos/swconfig/scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO/files/heat-environment-full.yaml"
128           description: 'Type of the deployment'
129       - string:
130           name: DEPLOY_TYPE
131           default: '{type}'
132           description: 'Type of the deployment'
133       - string:
134           name: ONAP_VERSION
135           default: '{onap-version}'
136           description: 'ONAP version to deploy'
137       - string:
138           name: ONAP_FLAVOR
139           default: '{onap-flavor}'
140           description: 'ONAP flavor to deploy - could be core, small, medium, full. Also used for xtesting as run_type.'
141       - string:
142           name: ENGINE_REPO_URL
143           default: 'https://gerrit.nordix.org/infra/engine.git'
144           description: 'URL to Nordix cloud-infra/engine repository'
145       - string:
146           name: ENGINE_VERSION
147           default: '{engine-version}'
148           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Could be sha, branch'
149       - string:
150           name: ENGINE_REFSPEC
151           default: '{engine-refspec}'
152           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Must be refspec.'
153       - string:
154           name: DEPLOY_SCENARIO_VERSION
155           default: '{deploy-scenario-version}'
156           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
157       - string:
158           name: DEPLOY_SCENARIO_REFSPEC
159           default: '{deploy-scenario-refspec}'
160           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
161       - string:
162           name: XTESTING_REPO_URL
163           default: 'https://gerrit.nordix.org/opnfv/xtesting-onap.git'
164           description: 'URL to Nordix xtesting-onap repository'
165       - string:
166           name: ENGINE_ANSIBLE_PARAMS
167           default: ''
168           description: 'Extra parameters that can be added when run the play books.'
169       - string:
170           name: CLEANUP
171           default: 'true'
172           description: 'Cleanup leftovers of the previous run'
173
174     properties:
175       - logrotate
176       - build-blocker:
177           use-build-blocker: true
178           blocking-jobs:
179             - 'cloud-infra-periodic-engine-.*'
180             - 'onap-.*'
181             - 'k8-.*'
182           block-level: 'NODE'
183       - throttle:
184           max-per-node: 1
185           max-total: 3
186           option: project
187
188     wrappers:
189       - build-timeout:
190           timeout: 220
191       - fix-workspace-permissions
192
193     scm:
194       - git-scm:
195           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
196           branch: '{nordix-branch}'
197           refspec: ''
198           wipe_workspace: true
199           clean_before: false
200
201     builders:
202       - description-setter:
203           description: $INSTALLER_TYPE | $DEPLOY_SCENARIO
204       - multijob:
205           name: Deploy ONAP
206           condition: SUCCESSFUL
207           projects:
208             - name: 'onap-deploy-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
209               current-parameters: false
210               predefined-parameters: |
211                 DISTRO=$DISTRO
212                 DEPLOY_TYPE=$DEPLOY_TYPE
213                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
214                 INSTALLER_TYPE=$INSTALLER_TYPE
215                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
216                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
217                 ONAP_VERSION=$ONAP_VERSION
218                 ONAP_FLAVOR=$ONAP_FLAVOR
219                 ENGINE_VERSION=$ENGINE_VERSION
220                 ENGINE_REFSPEC=$ENGINE_REFSPEC
221                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
222                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
223                 XTESTING_REPO_URL=$XTESTING_REPO_URL
224                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
225                 CLEANUP=$CLEANUP
226               git-revision: true
227               node-parameters: true
228               kill-phase-on: FAILURE
229               abort-all-job: true
230       - multijob:
231           name: OOM Healthcheck xtesting
232           condition: ALWAYS
233           projects:
234             - name: 'oom-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
235               current-parameters: false
236               predefined-parameters: |
237                 DISTRO=$DISTRO
238                 DEPLOY_TYPE=$DEPLOY_TYPE
239                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
240                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
241                 INSTALLER_TYPE=$INSTALLER_TYPE
242                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
243                 ONAP_VERSION=$ONAP_VERSION
244                 ONAP_FLAVOR=full
245                 TEST_TYPE=oom-healthcheck
246                 ENGINE_VERSION=$ENGINE_VERSION
247                 ENGINE_REFSPEC=$ENGINE_REFSPEC
248                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
249                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
250                 XTESTING_REPO_URL=$XTESTING_REPO_URL
251                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
252                 CLEANUP=$CLEANUP
253               node-parameters: true
254               kill-phase-on: NEVER
255               abort-all-job: false
256       - multijob:
257           name: ONAP Healthcheck xtesting
258           condition: ALWAYS
259           projects:
260             - name: 'onap-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
261               current-parameters: false
262               predefined-parameters: |
263                 DISTRO=$DISTRO
264                 DEPLOY_TYPE=$DEPLOY_TYPE
265                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
266                 INSTALLER_TYPE=$INSTALLER_TYPE
267                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
268                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
269                 ONAP_VERSION=$ONAP_VERSION
270                 ONAP_FLAVOR=core
271                 TEST_TYPE=onap-healthcheck
272                 ENGINE_VERSION=$ENGINE_VERSION
273                 ENGINE_REFSPEC=$ENGINE_REFSPEC
274                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
275                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
276                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
277                 XTESTING_REPO_URL=$XTESTING_REPO_URL
278                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
279                 CLEANUP=$CLEANUP
280               node-parameters: true
281               kill-phase-on: NEVER
282               abort-all-job: false
283             - name: 'onap-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
284               current-parameters: false
285               predefined-parameters: |
286                 DISTRO=$DISTRO
287                 DEPLOY_TYPE=$DEPLOY_TYPE
288                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
289                 INSTALLER_TYPE=$INSTALLER_TYPE
290                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
291                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
292                 ONAP_VERSION=$ONAP_VERSION
293                 ONAP_FLAVOR=small
294                 TEST_TYPE=onap-healthcheck
295                 ENGINE_VERSION=$ENGINE_VERSION
296                 ENGINE_REFSPEC=$ENGINE_REFSPEC
297                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
298                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
299                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
300                 XTESTING_REPO_URL=$XTESTING_REPO_URL
301                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
302                 CLEANUP=$CLEANUP
303               node-parameters: true
304               kill-phase-on: NEVER
305               abort-all-job: false
306             - name: 'onap-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
307               current-parameters: false
308               predefined-parameters: |
309                 DISTRO=$DISTRO
310                 DEPLOY_TYPE=$DEPLOY_TYPE
311                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
312                 INSTALLER_TYPE=$INSTALLER_TYPE
313                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
314                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
315                 ONAP_VERSION=$ONAP_VERSION
316                 ONAP_FLAVOR=medium
317                 TEST_TYPE=onap-healthcheck
318                 ENGINE_VERSION=$ENGINE_VERSION
319                 ENGINE_REFSPEC=$ENGINE_REFSPEC
320                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
321                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
322                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
323                 XTESTING_REPO_URL=$XTESTING_REPO_URL
324                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
325                 CLEANUP=$CLEANUP
326               node-parameters: true
327               kill-phase-on: NEVER
328               abort-all-job: false
329             - name: 'onap-healthcheck-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
330               current-parameters: false
331               predefined-parameters: |
332                 DISTRO=$DISTRO
333                 DEPLOY_TYPE=$DEPLOY_TYPE
334                 PROVISIIONER_TYPE=$PROVISIIONER_TYPE
335                 INSTALLER_TYPE=$INSTALLER_TYPE
336                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
337                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
338                 ONAP_VERSION=$ONAP_VERSION
339                 ONAP_FLAVOR=full
340                 TEST_TYPE=onap-healthcheck
341                 ENGINE_VERSION=$ENGINE_VERSION
342                 ENGINE_REFSPEC=$ENGINE_REFSPEC
343                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
344                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
345                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
346                 XTESTING_REPO_URL=$XTESTING_REPO_URL
347                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
348                 CLEANUP=$CLEANUP
349               node-parameters: true
350               kill-phase-on: NEVER
351               abort-all-job: false
352       - multijob:
353           name: Promote ONAP
354           condition: ALWAYS
355           projects:
356             - name: 'promote-onap-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
357               current-parameters: false
358               predefined-parameters: |
359                 DISTRO=$DISTRO
360                 DEPLOY_TYPE=$DEPLOY_TYPE
361                 HEAT_ENVIRONMENT_FILE=$HEAT_ENVIRONMENT_FILE
362                 INSTALLER_TYPE=$INSTALLER_TYPE
363                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
364                 ONAP_VERSION=$ONAP_VERSION
365                 ONAP_FLAVOR=$ONAP_FLAVOR
366                 ENGINE_VERSION=$ENGINE_VERSION
367                 ENGINE_REFSPEC=$ENGINE_REFSPEC
368                 DEPLOY_SCENARIO_VERSION=$DEPLOY_SCENARIO_VERSION
369                 DEPLOY_SCENARIO_REFSPEC=$DEPLOY_SCENARIO_REFSPEC
370                 XTESTING_REPO_URL=$XTESTING_REPO_URL
371                 ENGINE_ANSIBLE_PARAMS=$ENGINE_ANSIBLE_PARAMS
372                 CLEANUP=$CLEANUP
373               node-parameters: true
374               kill-phase-on: NEVER
375               abort-all-job: false
376
377 - job-template:
378     name: '{phase}-periodic-{distro}-{installer-type}-{type}-{onap-branch}'
379
380     disabled: false
381
382     concurrent: true
383
384     properties:
385       - logrotate
386
387     parameters:
388       - project-parameters:
389           project: '{project}'
390           branch: '{nordix-branch}'
391       - nordix-gerrit-parameters
392       - label:
393           name: SLAVE_LABEL
394           default: 'jumphost-onap-ubuntu1804'
395           description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
396       - string:
397           name: DISTRO
398           default: 'ubuntu1804'
399           description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
400       - string:
401           name: PROVISIONER_TYPE
402           default: 'heat'
403           description: 'Provisioner to use for provisioning nodes'
404       - string:
405           name: INSTALLER_TYPE
406           default: 'kubespray'
407           description: 'Installer to use for deploying the scenario'
408       - string:
409           name: DEPLOY_SCENARIO
410           default: 'onap-oom-nofeature'
411           description: 'Scenario to deploy and test'
412       - string:
413           name: HEAT_ENVIRONMENT_FILE
414           default: "file://$WORKSPACE/.cache/repos/swconfig/scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO/files/heat-environment-full.yaml"
415           description: 'Type of the deployment'
416       - string:
417           name: DEPLOY_TYPE
418           default: 'cloud'
419           description: 'Type of the deployment. Overriden by upstream job.'
420       - string:
421           name: ONAP_VERSION
422           default: 'master'
423           description: 'ONAP version to deploy'
424       - string:
425           name: ONAP_FLAVOR
426           default: '{onap-flavor}'
427           description: 'ONAP flavor to deploy - could be core, small, medium, full. Also used for xtesting as run_type.'
428       - string:
429           name: TEST_TYPE
430           default: 'oom-healthcheck'
431           description: 'Test type to run. Could be oom-healthcheck or onap-healthcheck'
432       - string:
433           name: ENGINE_VERSION
434           default: 'master'
435           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Could be sha, branch'
436       - string:
437           name: ENGINE_REFSPEC
438           default: 'master'
439           description: 'Development purposes only! Nordix Cloud Infra Engine version to use for deploying ONAP. Must be refspec.'
440       - string:
441           name: DEPLOY_SCENARIO_VERSION
442           default: 'master'
443           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_REFSPEC and could be sha, branch.'
444       - string:
445           name: DEPLOY_SCENARIO_REFSPEC
446           default: 'master'
447           description: 'Development purposes only! Nordix Cloud Infra Scenario version to use for deploying ONAP. Depends on DEPLOY_SCENARIO_VERSION and must be refspec.'
448       - string:
449           name: XTESTING_REPO_URL
450           default: 'https://gerrit.nordix.org/opnfv/xtesting-onap.git'
451           description: 'URL to Nordix xtesting-onap repository'
452       - string:
453           name: ENGINE_ANSIBLE_PARAMS
454           default: ''
455           description: 'Extra parameters that can be added when run the play books.'
456       - string:
457           name: CLEANUP
458           default: 'true'
459
460     wrappers:
461       - credentials-binding:
462           - file:
463               credential-id: nordix-jenkins-openrcfile-city-frankfurt-defaultproject
464               variable: OPENRC_FILE
465       - mask-passwords
466       - build-timeout:
467           timeout: '{build-timeout}'
468       - fix-workspace-permissions
469
470     scm:
471       - git-scm:
472           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
473           branch: '{nordix-branch}'
474           refspec: ''
475           wipe_workspace: true
476           clean_before: false
477
478     builders:
479       - description-setter:
480           description: $TEST_TYPE $ONAP_FLAVOR
481       - '{phase}-macro'
482
483 # vim: set ts=2 sw=2 expandtab: