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