Merge "Use robot virtualenv in devstack-testing script"
[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: git-scm-with-submodules
89     scm:
90         - git:
91             credentials-id: '{credentials-id}'
92             url: '$GIT_BASE'
93             refspec: ''
94             branches:
95                 - 'refs/heads/{branch}'
96             skip-tag: true
97             wipe-workspace: true
98             submodule:
99                 recursive: true
100
101 - scm:
102     name: gerrit-trigger-scm
103     scm:
104         - git:
105             credentials-id: '{credentials-id}'
106             url: '$GIT_BASE'
107             refspec: '{refspec}'
108             branches:
109                 - 'origin/$GERRIT_BRANCH'
110             skip-tag: true
111             choosing-strategy: '{choosing-strategy}'
112
113 - wrapper:
114     name: build-timeout
115     wrappers:
116         - timeout:
117             type: absolute
118             timeout: 360
119             fail: true
120
121 - trigger:
122     name: gerrit-trigger-patch-submitted
123     triggers:
124         - gerrit:
125             server-name: 'OpenDaylight'
126             trigger-on:
127                 - patchset-created-event:
128                     exclude-drafts: 'false'
129                     exclude-trivial-rebase: 'false'
130                     exclude-no-code-change: 'false'
131                 - draft-published-event
132                 - comment-added-contains-event:
133                     comment-contains-value: 'recheck'
134                 - comment-added-contains-event:
135                     comment-contains-value: 'reverify'
136             projects:
137               - project-compare-type: 'ANT'
138                 project-pattern: '{name}'
139                 branches:
140                   - branch-compare-type: 'ANT'
141                     branch-pattern: '**/{branch}'
142
143 - trigger:
144     name: gerrit-trigger-patch-merged
145     triggers:
146         - gerrit:
147             server-name: 'OpenDaylight'
148             trigger-on:
149                 - change-merged-event
150                 - comment-added-contains-event:
151                     comment-contains-value: 'remerge'
152             projects:
153               - project-compare-type: 'ANT'
154                 project-pattern: '{name}'
155                 branches:
156                   - branch-compare-type: 'ANT'
157                     branch-pattern: '**/{branch}'
158
159 - trigger:
160     name: gerrit-trigger-patch-sonar
161     triggers:
162         - gerrit:
163             server-name: 'OpenDaylight'
164             trigger-on:
165                 - comment-added-contains-event:
166                     comment-contains-value: 'run-sonar'
167             projects:
168               - project-compare-type: 'ANT'
169                 project-pattern: '{name}'
170                 branches:
171                   - branch-compare-type: 'ANT'
172                     branch-pattern: '**/master'
173             skip-vote:
174                 successful: true
175                 failed: true
176                 unstable: true
177                 notbuilt: true
178
179 - trigger:
180     name: gerrit-trigger-patch-site-merged
181     triggers:
182         - gerrit:
183             server-name: 'OpenDaylight'
184             trigger-on:
185                 - change-merged-event
186                 - comment-added-contains-event:
187                     comment-contains-value: 'republish'
188             projects:
189               - project-compare-type: 'ANT'
190                 project-pattern: '{name}'
191                 branches:
192                     - branch-compare-type: 'ANT'
193                       branch-pattern: '**/{branch}'
194
195 - publisher:
196     name: archive-artifacts
197     publishers:
198         - archive:
199             artifacts: '{artifacts}'
200             allow-empty: true
201             fingerprint: true
202             latest-only: true
203
204 - publisher:
205     name: email-notification
206     publishers:
207         - email-ext:
208             recipients: 'jenkins@lists.opendaylight.org'
209             reply-to:
210             content-type: default
211             subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
212             body: |
213                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
214
215                 Check console output at $BUILD_URL to view the results.
216             unstable: true
217             fixed: true
218             send-to:
219                 - developers
220                 - recipients
221
222 - publisher:
223         name: jacoco-report
224         publishers:
225             - jacoco:
226                 exec-pattern: "**/**.exec"
227                 class-pattern: "**/classes"
228                 source-pattern: "**/src/main/java"
229                 exclusion-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
230                 status-update: true
231                 targets:
232                   - branch:
233                       healthy: 10
234                       unhealthy: 20
235                   - method:
236                       healthy: 50
237                       unhealthy: 40
238
239 - builder:
240     name: wipe-org-opendaylight-repo
241     builders:
242         - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'
243
244 - builder:
245     name: jacoco-nojava-workaround
246     builders:
247         - shell: 'mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes'
248
249 - builder:
250     name: check-clm
251     builders:
252         - sonatype-clm:
253             application-name: '{application-name}'
254
255 - builder:
256     name: releng-check-unicode
257     builders:
258         - shell: |
259             $WORKSPACE/scripts/check-unicode.sh jjb/
260
261 - builder:
262     name: provide-maven-settings
263     builders:
264     - config-file-provider:
265         files:
266         - file-id: '{global-settings-file}'
267           variable: 'GLOBAL_SETTINGS_FILE'
268         - file-id: '{settings-file}'
269           variable: 'SETTINGS_FILE'
270
271 - builder:
272     name: releng-generate-p2pom
273     builders:
274         - shell: !include-raw: include-raw-generate-p2pom.sh
275
276 - builder:
277     name: releng-update-p2composite-metadata
278     builders:
279     - shell: !include-raw: include-raw-update-p2composite-metadata.sh
280     - maven-target:
281         maven-version: '{maven-version}'
282         pom: 'deploy-composite-repo.xml'
283         goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r'
284         settings: '{settings}'
285         global-settings: '{global-settings}'
286
287 - builder:
288     name: releng-stage-release
289     builders:
290         - shell: !include-raw: include-raw-stage-release.sh