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