Machinery for multi-os build.
[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
53 ##### SCMS
54 - scm:
55     name: git-scm
56     scm:
57         - git:
58             credentials-id: '{credentials-id}'
59             url: '$GIT_BASE'
60             refspec: ''
61             branches:
62                 - 'origin/{branch}'
63             skip-tag: true
64             wipe-workspace: true
65
66 - scm:
67     name: gerrit-trigger-scm
68     scm:
69         - git:
70             credentials-id: '{credentials-id}'
71             url: '$GIT_BASE'
72             refspec: '{refspec}'
73             branches:
74                 - 'origin/$GERRIT_BRANCH'
75             skip-tag: true
76             choosing-strategy: '{choosing-strategy}'
77
78 - scm:
79     name: zuul-trigger-scm
80     scm:
81       - git:
82           url: '$ZUUL_URL/$ZUUL_PROJECT'
83           refspec: '{refspec}'
84           branches:
85             - '{commit}'
86           skip-tag: true
87           wipe-workspace: true
88
89 ###### WRAPPERS
90 - wrapper:
91     name: build-timeout
92     wrappers:
93         - timeout:
94             type: absolute
95             timeout: 360
96             fail: true
97
98 ###### TRIGGERS
99 - trigger:
100     name: gerrit-trigger-patch-submitted
101     triggers:
102         - gerrit:
103             server-name: 'Default'
104             trigger-on:
105                 - patchset-created-event:
106                     exclude-drafts: 'false'
107                     exclude-trivial-rebase: 'false'
108                     exclude-no-code-change: 'false'
109                 - draft-published-event
110                 - comment-added-contains-event:
111                     comment-contains-value: 'recheck'
112                 - comment-added-contains-event:
113                     comment-contains-value: 'reverify'
114             projects:
115                 - project-compare-type: 'ANT'
116                   project-pattern: '{name}'
117                   branches:
118                     - branch-compare-type: 'ANT'
119                       branch-pattern: '**/{branch}'
120
121 - trigger:
122     name: gerrit-trigger-manually-triggered
123     triggers:
124         - gerrit:
125             server-name: 'Default'
126             trigger-on:
127                 - comment-added-contains-event:
128                     comment-contains-value: '{comment-trigger-value}'
129             projects:
130                 - project-compare-type: 'ANT'
131                   project-pattern: '{name}'
132                   branches:
133                     - branch-compare-type: 'ANT'
134                       branch-pattern: '**/{branch}'
135
136 - trigger:
137     name: gerrit-trigger-patch-merged
138     triggers:
139         - gerrit:
140             server-name: 'Default'
141             trigger-on:
142                 - change-merged-event
143                 - comment-added-contains-event:
144                     comment-contains-value: 'remerge'
145             projects:
146                 - project-compare-type: 'ANT'
147                   project-pattern: '{name}'
148                   branches:
149                     - branch-compare-type: 'ANT'
150                       branch-pattern: '**/{branch}'
151
152 # Publishers
153 - publisher:
154     name: archive-artifacts
155     publishers:
156         - archive:
157             artifacts: '{artifacts}'
158             allow-empty: true
159             fingerprint: true
160             latest-only: true
161
162 - publisher:
163     name: email-notification
164     publishers:
165         - email-ext:
166             recipients: 'nobody@projectrotterdam.info'
167             reply-to:
168             content-type: default
169             subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
170             body: |
171                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
172
173                 Check console output at $BUILD_URL to view the results.
174             unstable: true
175             fixed: true
176             send-to:
177                 - developers
178                 - recipients
179
180 - publisher:
181     name: jacoco-report
182     publishers:
183         - jacoco:
184             exec-pattern: '**/**.exec'
185             class-pattern: '**/classes'
186             source-pattern: '**/src/main/java'
187             exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
188             status-update: true
189             targets:
190                 - branch:
191                     healthy: 10
192                     unhealthy: 20
193                 - method:
194                     healthy: 50
195                     unhealthy: 40
196
197 - publisher:
198     name: robot-report
199     publishers:
200         - robot:
201             output-path: '{output-path}'
202             other-files: ''
203
204 ###### BUILDERS
205 - builder:
206     name: ci-management-check-unicode
207     builders:
208         - shell: |
209             $WORKSPACE/scripts/check-unicode.sh jjb/
210
211 - builder:
212     name: provide-maven-settings
213     builders:
214         - config-file-provider:
215             files:
216                 - file-id: '{global-settings-file}'
217                   variable: 'GLOBAL_SETTINGS_FILE'
218                 - file-id: '{settings-file}'
219                   variable: 'SETTINGS_FILE'
220