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