Merge "Plaintext gerrit commit signing instructions"
[releng/builder.git] / jjb / releng-macros.yaml
1 # OLD Releng macros
2
3 - parameter:
4     name: project-parameter
5     parameters:
6         - string:
7             name: PROJECT
8             default: '{project}'
9             description: "JJB configured PROJECT parameter to identify an ODL Gerrit project"
10
11 - parameter:
12     name: gerrit-parameters
13     parameters:
14         - string:
15             name: GERRIT_PROJECT
16             default: '{project}'
17             description: "GERRIT_PROJECT parameter if not given by trigger"
18         - string:
19             name: GERRIT_BRANCH
20             default: '{branch}'
21             description: "JJB configured GERRIT_BRANCH parameter"
22         - string:
23             name: GERRIT_REFSPEC
24             default: '{refspec}'
25             description: "GERRIT_REFSPEC parameter if not given by trigger"
26
27 - parameter:
28     name: build-tag
29     parameters:
30         - string:
31             name: BUILD_TAG
32             default: ''
33             description: 'Tag in Git to checkout'
34
35 - parameter:
36     name: controller-version-parameter
37     parameters:
38         - string:
39             name: ODL_VERSION
40             default: '{odl_version}'
41             description: 'Controller version (for use with openstacks networking_odl project)'
42
43 - parameter:
44     name: patches-to-build-parameter
45     parameters:
46         - string:
47             name: PATCHES_TO_BUILD
48             default: ''
49             description: 'csv list of patches in project:changeset format to build distribution with'
50
51 - parameter:
52     name: distribution-branch-to-build-parameter
53     parameters:
54         - string:
55             name: DISTRIBUTION_BRANCH_TO_BUILD
56             default: 'master'
57             description: 'distribution repo branch to build with'
58
59 - parameter:
60     name: p2zip-parameter
61     parameters:
62         - string:
63             name: P2ZIP_URL
64             default: ''
65             description: 'Nexus staging profile id'
66
67 - parameter:
68     name: stage-id-parameter
69     parameters:
70         - string:
71             name: STAGING_PROFILE_ID
72             default: '{stage-id}'
73             description: 'Nexus staging profile id'
74
75 - scm:
76     name: git-scm
77     scm:
78         - git:
79             credentials-id: '{credentials-id}'
80             url: '$GIT_BASE'
81             refspec: ''
82             branches:
83                 - 'origin/{branch}'
84             skip-tag: true
85             wipe-workspace: true
86
87 - scm:
88     name: gerrit-trigger-scm
89     scm:
90         - git:
91             credentials-id: '{credentials-id}'
92             url: '$GIT_BASE'
93             refspec: '{refspec}'
94             branches:
95                 - 'origin/$GERRIT_BRANCH'
96             skip-tag: true
97             choosing-strategy: '{choosing-strategy}'
98
99 - wrapper:
100     name: build-timeout
101     wrappers:
102         - timeout:
103             type: absolute
104             timeout: 360
105             fail: true
106
107 - trigger:
108     name: gerrit-trigger-patch-submitted
109     triggers:
110         - gerrit:
111             server-name: 'OpenDaylight'
112             trigger-on:
113                 - patchset-created-event:
114                     exclude-drafts: 'false'
115                     exclude-trivial-rebase: 'false'
116                     exclude-no-code-change: 'false'
117                 - draft-published-event
118                 - comment-added-contains-event:
119                     comment-contains-value: 'recheck'
120                 - comment-added-contains-event:
121                     comment-contains-value: 'reverify'
122             projects:
123               - project-compare-type: 'ANT'
124                 project-pattern: '{name}'
125                 branches:
126                   - branch-compare-type: 'ANT'
127                     branch-pattern: '**/{branch}'
128
129 - trigger:
130     name: gerrit-trigger-patch-merged
131     triggers:
132         - gerrit:
133             server-name: 'OpenDaylight'
134             trigger-on:
135                 - change-merged-event
136                 - comment-added-contains-event:
137                     comment-contains-value: 'remerge'
138             projects:
139               - project-compare-type: 'ANT'
140                 project-pattern: '{name}'
141                 branches:
142                   - branch-compare-type: 'ANT'
143                     branch-pattern: '**/{branch}'
144
145 - trigger:
146     name: gerrit-trigger-patch-sonar
147     triggers:
148         - gerrit:
149             server-name: 'OpenDaylight'
150             trigger-on:
151                 - comment-added-contains-event:
152                     comment-contains-value: 'run-sonar'
153             projects:
154               - project-compare-type: 'ANT'
155                 project-pattern: '{name}'
156                 branches:
157                   - branch-compare-type: 'ANT'
158                     branch-pattern: '**/master'
159             skip-vote:
160                 successful: true
161                 failed: true
162                 unstable: true
163                 notbuilt: true
164
165 - trigger:
166     name: gerrit-trigger-patch-site-merged
167     triggers:
168         - gerrit:
169             server-name: 'OpenDaylight'
170             trigger-on:
171                 - change-merged-event
172                 - comment-added-contains-event:
173                     comment-contains-value: 'republish'
174             projects:
175               - project-compare-type: 'ANT'
176                 project-pattern: '{name}'
177                 branches:
178                     - branch-compare-type: 'ANT'
179                       branch-pattern: '**/{branch}'
180
181 - publisher:
182     name: archive-artifacts
183     publishers:
184         - archive:
185             artifacts: '{artifacts}'
186             allow-empty: true
187             fingerprint: true
188             latest-only: true
189
190 - publisher:
191     name: email-notification
192     publishers:
193         - email-ext:
194             recipients: 'jenkins@lists.opendaylight.org'
195             reply-to:
196             content-type: default
197             subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
198             body: |
199                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
200
201                 Check console output at $BUILD_URL to view the results.
202             unstable: true
203             fixed: true
204             send-to:
205                 - developers
206                 - recipients
207
208 - publisher:
209         name: jacoco-report
210         publishers:
211             - jacoco:
212                 exec-pattern: "**/**.exec"
213                 class-pattern: "**/classes"
214                 source-pattern: "**/src/main/java"
215                 exclusion-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
216                 status-update: true
217                 targets:
218                   - branch:
219                       healthy: 10
220                       unhealthy: 20
221                   - method:
222                       healthy: 50
223                       unhealthy: 40
224
225 - builder:
226     name: wipe-org-opendaylight-repo
227     builders:
228         - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'
229
230 - builder:
231     name: jacoco-nojava-workaround
232     builders:
233         - shell: 'mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes'
234
235 - builder:
236     name: check-clm
237     builders:
238         - sonatype-clm:
239             application-name: '{application-name}'
240
241 - builder:
242     name: releng-check-unicode
243     builders:
244         - shell: |
245             $WORKSPACE/scripts/check-unicode.sh jjb/
246
247 - builder:
248     name: provide-maven-settings
249     builders:
250     - config-file-provider:
251         files:
252         - file-id: '{global-settings-file}'
253           variable: 'GLOBAL_SETTINGS_FILE'
254         - file-id: '{settings-file}'
255           variable: 'SETTINGS_FILE'
256
257 - builder:
258     name: releng-generate-p2pom
259     builders:
260         - shell: !include-raw: include-raw-generate-p2pom.sh
261
262 - builder:
263     name: releng-update-p2composite-metadata
264     builders:
265     - shell: !include-raw: include-raw-update-p2composite-metadata.sh
266     - maven-target:
267         maven-version: '{maven-version}'
268         pom: 'deploy-composite-repo.xml'
269         goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r'
270         settings: '{settings}'
271         global-settings: '{global-settings}'
272
273 - builder:
274     name: releng-stage-release
275     builders:
276         - shell: !include-raw: include-raw-stage-release.sh