bbb5baec53da86f7ccdf387e8facf41288dc22bd
[infra/cicd.git] / jjb / cloud-infra / cloud-infra-verify-jobs.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 - project:
22     name: 'cloud-infra-verify'
23
24     project: 'infra/engine'
25
26     stream:
27       - 'master':
28           branch: '{stream}'
29           disabled: 'false'
30
31     os:
32       - ubuntu1604:
33           disabled: 'true'
34           distribution: 'ubuntu16'
35           ipa_dib_os_element: 'fedora'
36           dib_os_release: 'xenial'
37           dib_os_element: 'ubuntu-minimal'
38       - ubuntu1804:
39           disabled: 'false'
40           distribution: 'ubuntu18'
41           ipa_dib_os_element: 'fedora'
42           dib_os_release: 'bionic'
43           dib_os_element: 'ubuntu-minimal'
44       - centos7:
45           disabled: 'true'
46           distribution: 'centos7'
47           ipa_dib_os_element: 'fedora'
48           dib_os_release: '7'
49           dib_os_element: 'centos-minimal'
50
51     type:
52       - virtual
53
54     phase:
55       - deploy
56       - test
57
58     jobs:
59       - 'cloud-infra-verify-{os}-{type}-{stream}'
60       - 'cloud-infra-verify-{os}-{phase}-{type}-{stream}'
61
62 - job-template:
63     name: 'cloud-infra-verify-{os}-{type}-{stream}'
64
65     project-type: multijob
66
67     disabled: '{obj:disabled}'
68
69     concurrent: true
70
71     parameters:
72       - project-parameters:
73           project: '{project}'
74           branch: '{branch}'
75       - nordix-gerrit-parameters
76       - label:
77           name: SLAVE_LABEL
78           default: 'vpod-deploy-{os}'
79           description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
80       - string:
81           name: DISTRIBUTION
82           default: '{distribution}'
83           description: 'Distribution to use for configuring target nodes (networking etc.)'
84       - string:
85           name: IPA_DIB_OS_ELEMENT
86           default: '{ipa_dib_os_element}'
87           description: 'DIB OS Element to use for building the ramdisk image'
88       - string:
89           name: DIB_OS_RELEASE
90           default: '{dib_os_release}'
91           description: 'DIB OS Release to use for building the deployment image to provision target nodes with'
92       - string:
93           name: DIB_OS_ELEMENT
94           default: '{dib_os_element}'
95           description: 'DIB OS Element to use for building the deployment image to provision target nodes with'
96       - string:
97           name: CLEANUP
98           default: 'true'
99           description: 'Cleanup leftovers of the previous run'
100
101     properties:
102       - logrotate
103       - build-blocker:
104           use-build-blocker: true
105           blocking-jobs:
106             - 'cloud-infra-verify-{os}-.*'
107             - 'cloud-infra-os-.*'
108             - 'cloud-infra-k8-.*'
109           block-level: 'NODE'
110       - throttle:
111           max-per-node: 1
112           max-total: 3
113           option: project
114
115     wrappers:
116       - build-timeout:
117           timeout: 120
118       - fix-workspace-permissions
119       - openstack:
120           single-use: True
121
122     scm:
123       - git-scm-gerrit:
124           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
125           branch: '{branch}'
126           refspec: $GERRIT_REFSPEC
127
128     triggers:
129       - nordix-gerrit-trigger-patchset-created:
130           project: 'infra\/engine|infra\/swconfig'
131           branch: '{branch}'
132           files: '**'
133
134     builders:
135       - multijob:
136           name: deploy
137           condition: SUCCESSFUL
138           projects:
139             - name: 'cloud-infra-verify-{os}-deploy-{type}-{stream}'
140               current-parameters: true
141               predefined-parameters: |
142                 DISTRIBUTION=$DISTRIBUTION
143                 IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
144                 DIB_OS_RELEASE=$DIB_OS_RELEASE
145                 DIB_OS_ELEMENT=$DIB_OS_ELEMENT
146                 CLEANUP=$CLEANUP
147                 GERRIT_PROJECT=$GERRIT_PROJECT
148                 GERRIT_BRANCH=$GERRIT_BRANCH
149                 GERRIT_REFSPEC=$GERRIT_REFSPEC
150                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
151                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
152               node-parameters: true
153               kill-phase-on: FAILURE
154               abort-all-job: true
155       - multijob:
156           name: test
157           condition: SUCCESSFUL
158           projects:
159             - name: 'cloud-infra-verify-{os}-test-{type}-{stream}'
160               current-parameters: true
161               predefined-parameters: |
162                 DISTRIBUTION=$DISTRIBUTION
163                 IPA_DIB_OS_ELEMENT=$IPA_DIB_OS_ELEMENT
164                 DIB_OS_RELEASE=$DIB_OS_RELEASE
165                 DIB_OS_ELEMENT=$DIB_OS_ELEMENT
166                 CLEANUP=$CLEANUP
167                 GERRIT_PROJECT=$GERRIT_PROJECT
168                 GERRIT_BRANCH=$GERRIT_BRANCH
169                 GERRIT_REFSPEC=$GERRIT_REFSPEC
170                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
171                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
172               node-parameters: true
173               kill-phase-on: test
174               abort-all-job: true
175
176 - job-template:
177     name: 'cloud-infra-verify-{os}-{phase}-{type}-{stream}'
178
179     disabled: false
180
181     concurrent: true
182
183     properties:
184       - logrotate
185
186     parameters:
187       - string:
188           name: PROJECT
189           default: $GERRIT_PROJECT
190       - string:
191           name: DISTRIBUTION
192           default: 'ubuntu18'
193           description: 'Distribution to use for configuring target nodes (networking etc.). Overriden by upstream job.'
194       - string:
195           name: IPA_DIB_OS_ELEMENT
196           default: 'fedora'
197           description: 'DIB OS Element to use for building the ramdisk image. Overriden by upstream job.'
198       - string:
199           name: DIB_OS_RELEASE
200           default: 'bionic'
201           description: 'DIB OS Release to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
202       - string:
203           name: DIB_OS_ELEMENT
204           default: 'ubuntu-minimal'
205           description: 'DIB OS Element to use for building the deployment image to provision target nodes with. Overriden by upstream job.'
206       - string:
207           name: CLEANUP
208           default: 'false'
209
210     wrappers:
211       - build-timeout:
212           timeout: 120
213       - fix-workspace-permissions
214
215     scm:
216       - git-scm-gerrit:
217           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
218           branch: '{branch}'
219           refspec: $GERRIT_REFSPEC
220
221     builders:
222       - 'cloud-infra-verify-{phase}-macro'
223
224 # -------------------------------
225 # builder macros
226 # -------------------------------
227
228 - builder:
229     name: 'cloud-infra-verify-deploy-macro'
230     builders:
231       - shell:
232           !include-raw: ./wait-for-pkg-manager.sh
233       - shell:
234           !include-raw: ./cloud-infra-deploy.sh
235
236 - builder:
237     name: 'cloud-infra-verify-test-macro'
238     builders:
239       - shell:
240           !include-raw: ./cloud-infra-test.sh
241
242 # vim: set ts=2 sw=2 expandtab: