[HICN-3] Add hicn checkstyle verify job before hicn build verify job.
[ci-management.git] / jjb / hicn / hicn.yaml
1 ---
2 - project:
3     name: hicn
4     jobs:
5       - 'hicn-verify-{stream}-{os}'
6       - 'hicn-merge-{stream}-{os}'
7
8     project: 'hicn'
9     os:
10       - ubuntu1804:
11           repo-os-part: 'ubuntu.bionic.main'
12       - ubuntu1604:
13           repo-os-part: 'ubuntu.xenial.main'
14       - centos7:
15           repo-os-part: 'centos7'
16
17     stream:
18       - master:
19           branch: 'master'
20           repo-stream-part: 'master'
21
22     type:
23       - short
24       - long
25
26 - job-template:
27     name: 'hicn-checkstyle-verify-{stream}'
28
29     project-type: freestyle
30     node: '{os}-us'
31     concurrent: true
32
33     build-discarder:
34       daysToKeep: '{build-days-to-keep}'
35       numToKeep: '{build-num-to-keep}'
36       artifactDaysToKeep: '{build-artifact-days-to-keep}'
37       artifactNumToKeep: '{build-artifact-num-to-keep}'
38
39     parameters:
40       - project-parameter:
41           project: '{project}'
42       - gerrit-parameter:
43           branch: '{branch}'
44       - os-parameter:
45           os: '{os}'
46       - repo-name-parameter:
47           repo-name: '{repo-stream-part}.ubuntu.xenial.main'
48
49     scm:
50       - gerrit-trigger-scm:
51           credentials-id: 'jenkins-gerrit-credentials'
52           refspec: '$GERRIT_REFSPEC'
53           choosing-strategy: 'gerrit'
54
55     wrappers:
56       - fdio-infra-wrappers:
57           build-timeout: '{build-timeout}'
58
59     triggers:
60       - gerrit:
61           server-name: 'Primary'
62           trigger-on:
63             - patchset-created-event:
64                 exclude-drafts: 'true'
65                 exclude-trivial-rebase: 'false'
66                 exclude-no-code-change: 'true'
67             - draft-published-event
68             - comment-added-contains-event:
69                 comment-contains-value: 'checkstylecheck'
70             - comment-added-contains-event:
71                 comment-contains-value: 'docsonly'
72             - comment-added-contains-event:
73                 comment-contains-value: 'recheck'
74             - comment-added-contains-event:
75                 comment-contains-value: 'reverify'
76           projects:
77             - project-compare-type: 'ANT'
78               project-pattern: '{project}'
79               branches:
80                 - branch-compare-type: 'ANT'
81                   branch-pattern: '**/{branch}'
82               file-paths:
83                 - compare-type: REG_EXP
84                   pattern: ^((?!\/COMMIT_MSG|docs|_abc|_def[\/\.]).)*$
85               forbidden-file-paths:
86                 - compare-type: REG_EXP
87                   pattern: .*docs\/.*
88                 - compare-type: REG_EXP
89                   pattern: .*extras\/emacs\/.*
90               disable-strict-forbidden-file-verification: 'true'
91           override-votes: true
92           gerrit-build-notbuilt-verified-value: 0
93           gerrit-build-successful-verified-value: 1
94           # yamllint disable-line rule:line-length
95           notbuilt-message: 'Automatic retry of failed jobs may be in process. A proper vote should be set when retry completes.'
96           # yamllint disable-line rule:line-length
97           failed-message: 'Checkstyle failed. No further verify jobs will be started.'
98           successful-message: 'checkstyle_success'
99           skip-vote:
100             successful: true
101             failed: false
102             unstable: false
103             notbuilt: false
104
105     builders:
106       - shell:
107           !include-raw-escape: include-raw-hicn-checkstyle.sh
108
109     publishers:
110       - fdio-infra-shiplogs:
111           maven-version: 'mvn33-new'
112           archive-artifacts: '/tmp/hicn-failed-unittests/*/* **/core'
113       - naginator:
114           rerun-unstable-builds: true
115           max-failed-builds: 1
116           fixed-delay: 90
117
118 - job-template:
119     name: 'hicn-verify-{stream}-{os}'
120
121     project-type: freestyle
122     node: '{os}-us'
123     concurrent: true
124
125     build-discarder:
126       daysToKeep: '{build-days-to-keep}'
127       numToKeep: 100
128       artifactDaysToKeep: '{build-artifact-days-to-keep}'
129       artifactNumToKeep: '{build-artifact-num-to-keep}'
130
131     parameters:
132       - project-parameter:
133           project: '{project}'
134       - gerrit-parameter:
135           branch: '{branch}'
136       - os-parameter:
137           os: '{os}'
138       - repo-name-parameter:
139           repo-name: '{repo-stream-part}.{repo-os-part}'
140       - stream-parameter:
141           stream: '{stream}'
142
143     scm:
144       - gerrit-trigger-scm:
145           credentials-id: 'jenkins-gerrit-credentials'
146           refspec: '$GERRIT_REFSPEC'
147           choosing-strategy: 'gerrit'
148
149     wrappers:
150       - fdio-infra-wrappers:
151           build-timeout: 120
152
153     triggers:
154       - gerrit-trigger-checkstyle:
155           name: '{project}'
156           branch: '{branch}'
157
158     builders:
159       - shell:
160           !include-raw-escape:
161           - include-raw-hicn-build.sh
162
163     publishers:
164       - archive:
165           artifacts: >
166             **/build/*.rpm,
167             **/build/*.deb
168           allow-empty: 'true'
169           fingerprint: false
170           only-if-success: true
171           default-excludes: false
172       - fdio-infra-shiplogs:
173           maven-version: 'mvn33-new'
174
175 - job-template:
176     name: 'hicn-merge-{stream}-{os}'
177
178     project-type: freestyle
179     node: '{os}-us'
180
181     build-discarder:
182       daysToKeep: '{build-days-to-keep}'
183       numToKeep: 100
184       artifactDaysToKeep: '{build-artifact-days-to-keep}'
185       artifactNumToKeep: '{build-artifact-num-to-keep}'
186
187     parameters:
188       - project-parameter:
189           project: '{project}'
190       - gerrit-parameter:
191           branch: '{branch}'
192       - os-parameter:
193           os: '{os}'
194       - maven-project-parameter:
195           maven: 'mvn33-new'
196       - maven-exec:
197           maven-version: 'mvn33-new'
198       - stream-parameter:
199           stream: 'release'
200       - repo-name-parameter:
201           repo-name: '{repo-stream-part}.{repo-os-part}'
202
203     scm:
204       - gerrit-trigger-scm:
205           credentials-id: 'jenkins-gerrit-credentials'
206           refspec: ''
207           choosing-strategy: 'default'
208
209     wrappers:
210       - fdio-infra-wrappers:
211           build-timeout: '{build-timeout}'
212
213     triggers:
214       - gerrit-trigger-patch-merged:
215           name: '{project}'
216           branch: '{branch}'
217
218     builders:
219       - config-file-provider:
220           files:
221             - file-id: '.packagecloud'
222               target: '/root'
223       - config-file-provider:
224           files:
225             - file-id: 'packagecloud_api'
226               target: '/root'
227       - maven-target:
228           maven-version: 'mvn33-new'
229           goals: '--version'
230           settings: 'hicn-settings'
231           settings-type: cfp
232           global-settings: 'global-settings'
233           global-settings-type: cfp
234       - shell:
235           !include-raw-escape:
236           - include-raw-hicn-checkstyle.sh
237       - shell:
238           !include-raw-escape:
239           - include-raw-hicn-build.sh
240       - provide-maven-settings:
241           settings-file: 'hicn-settings'
242           global-settings-file: 'global-settings'
243       - shell:
244           !include-raw-escape:
245           - ../scripts/packagecloud_push.sh
246       - shell:
247           !include-raw-escape:
248           - ../scripts/maven_push_functions.sh
249           - include-raw-hicn-maven-push.sh
250
251     publishers:
252       - archive:
253           artifacts: >
254             **/build/*.rpm,
255             **/build/*.deb
256           allow-empty: 'true'
257           fingerprint: false
258           only-if-success: true
259           default-excludes: false
260       - fdio-infra-shiplogs:
261           maven-version: 'mvn33-new'
262       - naginator:
263           rerun-unstable-builds: false
264           max-failed-builds: 1
265           fixed-delay: 90