115e122644b263a5591e330529b717d7ec28837b
[infra/cicd.git] / jjb / cloud-infra / kubernetes-jobs / kubernetes-verify-tox.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-tox'
22
23     project: 'kubernetes-tox'
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           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
32       - '1_20':
33           branch: '1.20'
34           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
35       - '1_19':
36           branch: '1.19'
37           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
38       - '1_18':
39           branch: '1.18'
40           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
41       - '1_17':
42           branch: '1.17'
43           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
44       - '1_16':
45           branch: '1.16'
46           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
47       - '1_15':
48           branch: '1.15'
49           gated-projects: 'infra/stack/kubernetes|infra/installer/kubespray'
50
51     lint-type:
52       - ansible-lint:
53           disabled: false
54           repos-to-ignore: ''
55       - shellcheck:
56           disabled: false
57           repos-to-ignore: ''
58       - yamllint:
59           disabled: false
60           repos-to-ignore: ''
61
62     jobs:
63       - 'kubernetes-verify-tox-{stream}'
64       - 'kubernetes-verify-{lint-type}-{stream}'
65
66 - job-template:
67     name: 'kubernetes-verify-tox-{stream}'
68
69     project-type: multijob
70
71     concurrent: true
72
73     node: infra-tools-docker-slave-ubuntu1804
74
75     parameters:
76       - project-parameters:
77           project: $GERRIT_PROJECT
78           branch: '{branch}'
79           description: 'The project and branch which the change is proposed for'
80       - string:
81           name: VERBOSITY
82           default: 'false'
83           description: 'Verbosity setting for the tox script'
84       - nordix-gerrit-parameters
85
86     properties:
87       - logrotate
88       # NOTE (fdegir): throttle categories are controlled in jenkins global configuration
89       - throttle:
90           enabled: true
91           max-per-node: 1
92           max-total: 4
93           option: category
94           categories:
95             - engine-verify-tox
96
97     wrappers:
98       - build-timeout:
99           timeout: 60
100       - fix-workspace-permissions
101
102     scm:
103       - git-scm-gerrit:
104           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
105           branch: $GERRIT_BRANCH
106           refspec: $GERRIT_REFSPEC
107           wipe_workspace: true
108           clean_before: false
109
110     triggers:
111       - gerrit:
112           server-name: 'Nordix Gerrit'
113           trigger-on:
114             - patchset-created-event:
115                 exclude-drafts: 'false'
116                 exclude-trivial-rebase: 'false'
117                 exclude-no-code-change: 'false'
118             - draft-published-event
119             - comment-added-contains-event:
120                 comment-contains-value: 'recheck'
121             - comment-added-contains-event:
122                 comment-contains-value: 'reverify'
123           projects:
124             - project-compare-type: 'REG_EXP'
125               project-pattern: '{gated-projects}'
126               branches:
127                 - branch-compare-type: 'ANT'
128                   branch-pattern: '**/{branch}'
129               disable-strict-forbidden-file-verification: 'false'
130               forbidden-file-paths:
131                 - compare-type: ANT
132                   pattern: '.gitignore|.gitreview|.yamllint|README.md|bindep.txt|setup.cfg|setup.py'
133           custom-url: '* $JOB_NAME $BUILD_URL'
134           readable-message: 'true'
135
136     builders:
137       - multijob:
138           name: Static Analysis
139           condition: ALWAYS
140           execution-type: PARALLEL
141           projects:
142             - name: 'kubernetes-verify-ansible-lint-{stream}'
143               current-parameters: true
144               kill-phase-on: NEVER
145               abort-all-job: false
146             - name: 'kubernetes-verify-shellcheck-{stream}'
147               current-parameters: true
148               kill-phase-on: NEVER
149               abort-all-job: false
150             - name: 'kubernetes-verify-yamllint-{stream}'
151               current-parameters: true
152               kill-phase-on: NEVER
153               abort-all-job: false
154
155 - job-template:
156     name: 'kubernetes-verify-{lint-type}-{stream}'
157
158     disabled: '{obj:disabled}'
159
160     concurrent: true
161
162     node: infra-tools-docker-slave-ubuntu1804
163
164     parameters:
165       - string:
166           name: LINT_TYPE
167           default: '{lint-type}'
168           description: 'Lint type to run'
169       - string:
170           name: REPOS_TO_IGNORE
171           default: '{repos-to-ignore}'
172           description: 'Repos to ignore for the specific lint type'
173
174     properties:
175       - logrotate
176
177     wrappers:
178       - build-timeout:
179           timeout: 150
180       - fix-workspace-permissions
181
182     scm:
183       - git-scm-gerrit:
184           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
185           branch: $GERRIT_BRANCH
186           refspec: $GERRIT_REFSPEC
187           wipe_workspace: true
188           clean_before: false
189
190     builders:
191       - 'tox-macro'
192
193 # vim: set ts=2 sw=2 expandtab: