Merge "Convert trex to be Packer compliant"
[ci-management.git] / jjb / global-macros.yaml
1 # Global macros
2
3 #### PARAMETERS
4 - parameter:
5     name: project-parameter
6     parameters:
7         - string:
8             name: PROJECT
9             default: '{project}'
10             description: "JJB configured PROJECT parameter to identify a Gerrit project"
11
12 - parameter:
13     name: gerrit-parameter
14     parameters:
15         - string:
16             name: GERRIT_BRANCH
17             default: '{branch}'
18             description: "JJB configured GERRIT_BRANCH parameter"
19
20 - parameter:
21     name: gerrit-project-parameter
22     parameters:
23         - string:
24             name: GERRIT_PROJECT
25             default: '{project}'
26             description: "GERRIT_PROJECT parameter if not given by trigger"
27
28 - parameter:
29     name: os-parameter
30     parameters:
31         - string:
32             name: OS
33             default: '{os}'
34             description: "OS parameter"
35
36 - parameter:
37     name: gerrit-refspec-parameter
38     parameters:
39         - string:
40             name: GERRIT_REFSPEC
41             default: '{refspec}'
42             description: "GERRIT_REFSPEC parameter not given by trigger"
43
44 - parameter:
45     name: maven-project-parameter
46     parameters:
47         - string:
48             name: MAVEN_SELECTOR
49             default: '{maven}'
50             description: 'Maven selector to be used by shell scripts'
51
52 - parameter:
53     name: maven-exec
54     parameters:
55       - string:
56           name: MVN
57           default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn'
58           description: 'Maven selector to be used by shell scripts'
59
60 - parameter:
61     name: repo-name-parameter
62     parameters:
63         - string:
64             name: REPO_NAME
65             default: '{repo-name}'
66             description: 'Name of repo to which to publish packaging'
67
68 - parameter:
69     name: compiler-parameter
70     parameters:
71         - string:
72             name: CC
73             default: '{cc}'
74             description: "CC parameter, can be gnu or clang"
75
76 - parameter:
77     name: is-csit-vpp-job-parameter
78     parameters:
79         - string:
80             name: IS_CSIT_VPP_JOB
81             default: '{is-csit-vpp-job}'
82             description: "Parameter is True if this is a CSIT vpp job."
83
84
85 ##### SCMS
86 - scm:
87     name: git-scm
88     scm:
89         - git:
90             credentials-id: '{credentials-id}'
91             url: '$GIT_BASE'
92             refspec: ''
93             branches:
94                 - 'origin/{branch}'
95             skip-tag: true
96             wipe-workspace: true
97
98 - scm:
99     name: gerrit-trigger-scm
100     scm:
101         - git:
102             credentials-id: '{credentials-id}'
103             url: '$GIT_BASE'
104             refspec: '{refspec}'
105             branches:
106                 - 'origin/$GERRIT_BRANCH'
107             skip-tag: true
108             choosing-strategy: '{choosing-strategy}'
109
110 - scm:
111     name: zuul-trigger-scm
112     scm:
113       - git:
114           url: '$ZUUL_URL/$ZUUL_PROJECT'
115           refspec: '{refspec}'
116           branches:
117             - '{commit}'
118           skip-tag: true
119           wipe-workspace: true
120
121 ###### WRAPPERS
122 - wrapper:
123     name: build-timeout
124     wrappers:
125         - timeout:
126             type: absolute
127             timeout: 360
128             fail: true
129
130 - wrapper:
131     # This wrapper is used for all jobs that require no-activity timeouts
132     name: fdio-infra-wrappers-non-activity-timeout
133     wrappers:
134       - timeout:
135           type: no-activity
136           timeout: '{build-timeout}'
137           fail: true
138       - timestamps
139       - ssh-agent-credentials:
140           users:
141             - 'jenkins-gerrit-credentials'
142       - jclouds:
143           single-use: True
144       - openstack:
145           single-use: True
146
147 - wrapper:
148     # This wrapper is required for all jobs as it configures the wrappers
149     # needed by the fd.io infra.
150     name: fdio-infra-wrappers
151     wrappers:
152       - timeout:
153           type: absolute
154           timeout: '{build-timeout}'
155           timeout-var: 'BUILD_TIMEOUT'
156           fail: true
157       - timestamps
158       - ssh-agent-credentials:
159           users:
160               - 'jenkins-gerrit-credentials'
161       - jclouds:
162           single-use: True
163       - openstack:
164           single-use: True
165
166 ###### TRIGGERS
167 - trigger:
168     name: gerrit-trigger-patch-submitted
169     triggers:
170         - gerrit:
171             server-name: 'Primary'
172             trigger-on:
173                 - patchset-created-event:
174                     exclude-drafts: 'false'
175                     exclude-trivial-rebase: 'false'
176                     exclude-no-code-change: 'false'
177                 - draft-published-event
178                 - comment-added-contains-event:
179                     comment-contains-value: 'recheck'
180                 - comment-added-contains-event:
181                     comment-contains-value: 'reverify'
182             projects:
183                 - project-compare-type: 'ANT'
184                   project-pattern: '{name}'
185                   branches:
186                     - branch-compare-type: 'ANT'
187                       branch-pattern: '**/{branch}'
188
189 - trigger:
190     name: gerrit-trigger-manually-triggered
191     triggers:
192         - gerrit:
193             server-name: 'Primary'
194             trigger-on:
195                 - comment-added-contains-event:
196                     comment-contains-value: '{comment-trigger-value}'
197             projects:
198                 - project-compare-type: 'ANT'
199                   project-pattern: '{name}'
200                   branches:
201                     - branch-compare-type: 'ANT'
202                       branch-pattern: '**/{branch}'
203
204 - trigger:
205     name: gerrit-trigger-patch-merged
206     triggers:
207         - gerrit:
208             server-name: 'Primary'
209             trigger-on:
210                 - change-merged-event
211                 - comment-added-contains-event:
212                     comment-contains-value: 'remerge'
213             projects:
214                 - project-compare-type: 'ANT'
215                   project-pattern: '{name}'
216                   branches:
217                     - branch-compare-type: 'ANT'
218                       branch-pattern: '**/{branch}'
219             # Force Jenkins always vote the values it should already have voted
220             # during the prior verify phase
221             override-votes: true
222             gerrit-build-started-verified-value: 1
223             gerrit-build-successful-verified-value: 1
224             gerrit-build-failed-verified-value: 1
225             gerrit-build-unstable-verified-value: 1
226             gerrit-build-notbuilt-verified-value: 1
227             gerrit-build-started-codereview-value: 0
228             gerrit-build-successful-codereview-value: 0
229             gerrit-build-failed-codereview-value: 0
230             gerrit-build-unstable-codereview-value: 0
231             gerrit-build-notbuilt-codereview-value: 0
232
233 # Publishers
234 - publisher:
235     name: archive-artifacts
236     publishers:
237         - archive:
238             artifacts: '{artifacts}'
239             allow-empty: true
240             fingerprint: true
241             latest-only: true
242
243 - publisher:
244     name: email-notification
245     publishers:
246         - email-ext:
247             recipients: 'nobody@projectrotterdam.info'
248             reply-to:
249             content-type: default
250             subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
251             body: |
252                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
253
254                 Check console output at $BUILD_URL to view the results.
255             unstable: true
256             fixed: true
257             send-to:
258                 - developers
259                 - recipients
260
261 - publisher:
262     name: jacoco-report
263     publishers:
264         - jacoco:
265             exec-pattern: '**/**.exec'
266             class-pattern: '**/classes'
267             source-pattern: '**/src/main/java'
268             exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
269             status-update: true
270             targets:
271                 - branch:
272                     healthy: 10
273                     unhealthy: 20
274                 - method:
275                     healthy: 50
276                     unhealthy: 40
277
278 - publisher:
279     name: robot-report
280     publishers:
281         - robot:
282             output-path: '{output-path}'
283             other-files: ''
284
285 ###### BUILDERS
286 - builder:
287     name: ci-management-check-unicode
288     builders:
289         - shell: |
290             $WORKSPACE/scripts/check-unicode.sh jjb/
291
292 - builder:
293     name: provide-maven-settings
294     builders:
295         - config-file-provider:
296             files:
297                 - file-id: '{global-settings-file}'
298                   variable: 'GLOBAL_SETTINGS_FILE'
299                 - file-id: '{settings-file}'
300                   variable: 'SETTINGS_FILE'