Merge "Fixing a few reST typos"
[releng/builder.git] / jjb / releng-templates.yaml
1 - job-template:
2     name: '{name}-release-java'
3
4     # Job template for producing a release candidate by creating a staging repo
5     # in Nexus.
6
7     project-type: maven
8     node: dynamic_merge
9     jdk: '{jdk}'
10
11     logrotate:
12         daysToKeep: '30'
13
14     parameters:
15         - project-parameter:
16             project: '{project}'
17         - build-tag
18         - stage-id-parameter:
19             stage-id: '{stage-id}'
20
21     scm:
22         - git:
23             credentials-id: '{ssh-credentials}'
24             url: '$GIT_BASE'
25             branches:
26                 - '$BUILD_TAG'
27             skip-tag: true
28             shallow-clone: true
29             wipe-workspace: true
30
31     wrappers:
32         - build-timeout
33         - ssh-agent-credentials:
34             users:
35                 - '{ssh-credentials}'
36         - openstack:
37             single-use: true
38
39     prebuilders:
40         - wipe-org-opendaylight-repo
41         - jacoco-nojava-workaround
42         - provide-maven-settings:
43             global-settings-file: 'odl-global-settings'
44             settings-file: 'autorelease-settings'
45
46     maven:
47         maven-name: '{mvn33}'
48         root-pom: 'pom.xml'
49         goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage'
50         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
51         settings: 'autorelease-settings'
52         global-settings: 'odl-global-settings'
53         post-step-run-condition: UNSTABLE
54
55     postbuilders:
56         - releng-stage-release
57
58     publishers:
59         - archive-artifacts:
60             artifacts: '*.log'
61         - email-notification:
62             email-prefix: '[releng]'
63
64
65 - job-template:
66     name: '{name}-publish-p2repo'
67
68     # Job template for publishing a p2 repo given a URL to a zipped p2repo.
69
70     project-type: maven
71     node: dynamic_merge
72     jdk: '{jdk}'
73
74     parameters:
75         - project-parameter:
76             project: '{project}'
77         - p2zip-parameter
78
79     prebuilders:
80         - wipe-org-opendaylight-repo
81         - jacoco-nojava-workaround
82         - releng-fetch-p2zip-if-necessary:
83             maven-version: '{mvn33}'
84             settings: '{project-settings}'
85             global-settings: 'odl-global-settings'
86         - releng-generate-p2pom
87
88     maven:
89         maven-name: '{mvn33}'
90         root-pom: 'pom.xml'
91         goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r'
92         settings: '{project-settings}'
93         global-settings: 'odl-global-settings'
94         post-step-run-condition: UNSTABLE
95
96     postbuilders:
97         - releng-update-p2composite-metadata:
98             maven-version: '{mvn33}'
99             settings: '{project-settings}'
100             global-settings: 'odl-global-settings'
101
102     publishers:
103         - email-notification:
104             email-prefix: '[releng]'
105
106 # Python Related
107
108 - job-template:
109     name: '{name}-verify-python-{stream}'
110
111     # Job template for python verify jobs
112     #
113     # The purpose of this job template is to run tox for projects using this
114     # template.
115     #
116     # Required Variables:
117     #     stream:    release stream (eg. stable-lithium or beryllium)
118     #     branch:    git branch (eg. stable/lithium or master)
119     #     toxdir:    directory containing the project's tox.ini relative to
120     #                the workspace.
121
122     project-type: freestyle
123     node: dynamic_verify
124     concurrent: true
125
126     logrotate:
127         daysToKeep: '7'
128         numToKeep: '-1'
129         artifactDaysToKeep: '-1'
130         artifactNumToKeep: '-1'
131
132     parameters:
133         - project-parameter:
134             project: '{project}'
135         - gerrit-parameters:
136             project: '{project}'
137             branch: '{branch}'
138             refspec: 'refs/heads/{branch}'
139
140     scm:
141         - git:
142             credentials-id: '{ssh-credentials}'
143             url: '$GIT_BASE'
144             basedir: 'repo'
145             refspec: '$GERRIT_REFSPEC'
146             branches:
147                 - 'origin/$GERRIT_BRANCH'
148             skip-tag: true
149             choosing-strategy: 'gerrit'
150
151     wrappers:
152         - build-timeout
153         - ssh-agent-credentials:
154             users:
155                 - '{ssh-credentials}'
156         - openstack:
157             single-use: true
158
159     triggers:
160         - gerrit:
161             server-name: 'OpenDaylight'
162             trigger-on:
163                 - patchset-created-event:
164                     exclude-drafts: 'true'
165                     exclude-trivial-rebase: 'false'
166                     exclude-no-code-change: 'true'
167                 - draft-published-event
168                 - comment-added-contains-event:
169                     comment-contains-value: 'recheck'
170                 - comment-added-contains-event:
171                     comment-contains-value: 'reverify'
172             projects:
173               - project-compare-type: 'ANT'
174                 project-pattern: '{project}'
175                 branches:
176                   - branch-compare-type: 'ANT'
177                     branch-pattern: '**/{branch}'
178                 file-paths:
179                     - compare-type: ANT
180                       pattern: '{toxdir}/**'
181
182     builders:
183         - shell: |
184             virtualenv $WORKSPACE/venv-tox
185             source $WORKSPACE/venv-tox/bin/activate
186             pip install --upgrade pip
187             pip install --upgrade tox argparse
188             pip freeze
189             cd $WORKSPACE/repo/{toxdir}
190             tox
191
192     publishers:
193         - email-notification:
194             email-prefix: '[{project}]'
195
196 - job-template:
197     name: '{name}-merge-rtd-{stream}'
198     # Template for ReadTheDocs triggering
199
200     project-type: freestyle
201     node: dynamic_verify
202     concurrent: false
203
204     parameters:
205         - project-parameter:
206             project: '{project}'
207         - gerrit-parameters:
208             project: '{project}'
209             branch: '{branch}'
210             refspec: 'refs/heads/{branch}'
211
212     wrappers:
213         - build-timeout
214         - ssh-agent-credentials:
215             users:
216                 - '{ssh-credentials}'
217         - openstack:
218             single-use: true
219
220     triggers:
221         - gerrit-trigger-patch-merged:
222             name: '{project}'
223             branch: '{branch}'
224
225     builders:
226         - shell: |
227             curl -X POST https://readthedocs.org/build/{rtdproject}
228
229     publishers:
230         - email-notification:
231             email-prefix: '[{project}]'
232
233 # Node related
234
235 - job-template:
236     name: '{name}-verify-node-{stream}'
237
238     # Job template for python verify jobs
239     #
240     # The purpose of this job template is to run node tests for projects using
241     # this template. It uses python virtualenv to install nodeenv and create a
242     # virtualenv for nodejs.
243     #
244     # Required Variables:
245     #     stream:    release stream (eg. stable-lithium or beryllium)
246     #     branch:    git branch (eg. stable/lithium or master)
247     #     nodedir:   directory of nodejs project to run node test against
248     #     nodever:   version of node to install in virtualenv
249
250     project-type: freestyle
251     node: dynamic_verify
252     concurrent: true
253
254     logrotate:
255         daysToKeep: '7'
256         numToKeep: '-1'
257         artifactDaysToKeep: '-1'
258         artifactNumToKeep: '-1'
259
260     parameters:
261         - project-parameter:
262             project: '{project}'
263         - gerrit-parameters:
264             project: '{project}'
265             branch: '{branch}'
266             refspec: 'refs/heads/{branch}'
267
268     scm:
269         - git:
270             credentials-id: '{ssh-credentials}'
271             url: '$GIT_BASE'
272             basedir: 'repo'
273             refspec: '$GERRIT_REFSPEC'
274             branches:
275                 - 'origin/$GERRIT_BRANCH'
276             skip-tag: true
277             choosing-strategy: 'gerrit'
278
279     wrappers:
280         - build-timeout
281         - ssh-agent-credentials:
282             users:
283                 - '{ssh-credentials}'
284         - openstack:
285             single-use: true
286
287     triggers:
288         - gerrit:
289             server-name: 'OpenDaylight'
290             trigger-on:
291                 - patchset-created-event:
292                     exclude-drafts: 'true'
293                     exclude-trivial-rebase: 'false'
294                     exclude-no-code-change: 'true'
295                 - draft-published-event
296                 - comment-added-contains-event:
297                     comment-contains-value: 'recheck'
298                 - comment-added-contains-event:
299                     comment-contains-value: 'reverify'
300             projects:
301               - project-compare-type: 'ANT'
302                 project-pattern: '{project}'
303                 branches:
304                   - branch-compare-type: 'ANT'
305                     branch-pattern: '**/{branch}'
306                 file-paths:
307                     - compare-type: ANT
308                       pattern: '{nodedir}/**'
309
310     builders:
311         - shell: |
312             #!/bin/bash
313             # Prepare Python
314             virtualenv $WORKSPACE/venv-python
315             source $WORKSPACE/venv-python/bin/activate
316             pip install --upgrade pip
317             pip install --upgrade tox argparse nodeenv
318             pip freeze
319
320             # Prepare node
321             nodeenv --node={nodever} --prebuilt $WORKSPACE/venv-node
322             source $WORKSPACE/venv-node/bin/activate
323             cd $WORKSPACE/repo/{nodedir}
324             npm install
325             npm test
326
327     publishers:
328         - email-notification:
329             email-prefix: '[{project}]'