engine: Avoid using dots in job streams
[infra/cicd.git] / jjb / engine / verify-jobs / kubernetes-verify-package.yaml
1 ---
2 # ============LICENSE_START=======================================================
3 #  Copyright (C) 2019 Nordix Foundation.
4 # ================================================================================
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #      http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17 # SPDX-License-Identifier: Apache-2.0
18 # ============LICENSE_END=========================================================
19
20 - project:
21     name: 'kubernetes-verify-package'
22
23     project: 'kubernetes-verify-package'
24
25     # NOTE (fdegir): dot is not an allowed character in groovy var names and also for
26     # naming openstack objects so stream is used for that purpose but branch points to
27     # actual branch name on gerrit
28     stream:
29       - 'master':
30           branch: 'master'
31           openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'
32           execution-mode: 'packaging'
33           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
34           successful: false
35           failed: false
36           unstable: false
37           notbuilt: false
38       - '1_17':
39           branch: '1.17'
40           openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'
41           execution-mode: 'packaging'
42           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
43           successful: false
44           failed: false
45           unstable: false
46           notbuilt: false
47       - '1_15':
48           branch: '1.15'
49           openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'
50           execution-mode: 'packaging'
51           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
52           successful: false
53           failed: false
54           unstable: false
55           notbuilt: false
56
57     distro:
58       - ubuntu1804
59
60     dependency-jobs: 'kubernetes-verify-tox-{stream}'
61     dependency-job-var: 'TRIGGER_kubernetes_verify_tox_{stream}_BUILD_RESULT'
62
63     jobs:
64       - 'kubernetes-verify-package-{distro}-{stream}'
65
66 - job-template:
67     name: 'kubernetes-verify-package-{distro}-{stream}'
68
69     disabled: '{obj:disabled}'
70
71     concurrent: true
72
73     parameters:
74       - string:
75           name: EXECUTION_MODE
76           default: '{execution-mode}'
77           description: 'Engine execution mode - packaging'
78       - string:
79           name: DISTRO
80           default: '{distro}'
81           description: 'Distribution to use for configuring target nodes (networking etc.)'
82       - string:
83           name: VERBOSITY
84           default: 'true'
85           description: 'Verbosity setting for the engine - true or false - default is false'
86       - string:
87           name: CI_LOOP
88           default: 'verify'
89           description: 'CI loop type'
90       - label:
91           name: SLAVE_LABEL
92           default: 'engine-package-{distro}-fra'
93           description: 'Slave label to schedule this job on.'
94       - project-parameters:
95           project: $GERRIT_PROJECT
96           branch: '{branch}'
97           description: 'The project and branch which the change is proposed for'
98       - nordix-gerrit-parameters
99
100     properties:
101       - logrotate
102       - build-blocker:
103           use-build-blocker: true
104           blocking-jobs:
105             - 'engine-verify-package-.*'
106             - 'kubernetes-verify-package-.*'
107             - 'onap-verify-package-.*'
108             - 'openstack-verify-package-.*'
109           block-level: 'NODE'
110       - throttle:
111           max-per-node: 1
112           max-total: 3
113           option: project
114
115     scm:
116       - git-scm-gerrit:
117           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
118           branch: $GERRIT_BRANCH
119           refspec: $GERRIT_REFSPEC
120           wipe_workspace: true
121           clean_before: false
122
123     triggers:
124       - gerrit:
125           server-name: 'Nordix Gerrit'
126           trigger-on:
127             - patchset-created-event:
128                 exclude-drafts: 'false'
129                 exclude-trivial-rebase: 'false'
130                 exclude-no-code-change: 'false'
131             - draft-published-event
132             - comment-added-contains-event:
133                 comment-contains-value: 'recheck'
134             - comment-added-contains-event:
135                 comment-contains-value: 'reverify'
136           projects:
137             - project-compare-type: 'REG_EXP'
138               project-pattern: '{gated-projects}'
139               branches:
140                 - branch-compare-type: 'ANT'
141                   branch-pattern: '**/{branch}'
142               disable-strict-forbidden-file-verification: 'true'
143               forbidden-file-paths:
144                 - compare-type: ANT
145                   pattern: 'docs/**|releasenotes/**'
146           skip-vote:
147             successful: '{obj:successful}'
148             failed: '{obj:failed}'
149             unstable: '{obj:unstable}'
150             notbuilt: '{obj:notbuilt}'
151           custom-url: '* $JOB_NAME $BUILD_URL'
152           readable-message: 'true'
153           dependency-jobs: '{dependency-jobs}'
154
155     wrappers:
156       - openstack:
157           single-use: True
158       - build-timeout:
159           timeout: 240
160       - credentials-binding:
161           - username-password-separated:
162               credential-id: 'nordix-cicd-arm-credentials'
163               username: NORDIX_ARM_USERNAME
164               password: NORDIX_ARM_TOKEN
165       - mask-passwords
166       - pre-scm-buildstep:
167           failOnError: true
168           buildsteps:
169             - system-groovy:
170                 command: |
171                   def build = this.getProperty('binding').getVariable('build')
172                   def listener = this.getProperty('binding').getVariable('listener')
173                   if (build.getEnvironment(listener).{dependency-job-var} != "SUCCESS") {{
174                     println "WARN  : Aborting build since dependent job did not succeed!"
175                     throw new InterruptedException()
176                   }}
177             - shell: |
178                 #!/bin/bash
179                 sudo chown -R $USER:$USER $WORKSPACE || exit 1
180
181
182     builders:
183       - 'generate-change-metadata-macro'
184       - inject:
185           properties-file: "$WORKSPACE/change.properties"
186       - 'generate-ssh-keypair-macro'
187       - 'wait-pkg-mgr-macro'
188       - 'package-macro'
189       - 'upload-artifact-macro'