Merge "copy ssh keys in csit library verify job"
[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: 'opendaylight-jenkins-ssh'
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         - opendaylight-infra-wrappers:
33             build-timeout: '{build-timeout}'
34
35     prebuilders:
36         - wipe-org-opendaylight-repo
37         - jacoco-nojava-workaround
38         - provide-maven-settings:
39             global-settings-file: 'odl-global-settings'
40             settings-file: 'autorelease-settings'
41
42     maven:
43         maven-name: '{mvn33}'
44         root-pom: 'pom.xml'
45         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'
46         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
47         settings: 'autorelease-settings'
48         global-settings: 'odl-global-settings'
49         post-step-run-condition: UNSTABLE
50
51     postbuilders:
52         - releng-stage-release
53
54     publishers:
55         - archive-artifacts:
56             artifacts: '*.log'
57         - email-notification:
58             email-prefix: '[releng]'
59
60
61 - job-template:
62     name: '{name}-publish-p2repo'
63
64     # Job template for publishing a p2 repo given a URL to a zipped p2repo.
65
66     project-type: maven
67     node: dynamic_merge
68     jdk: '{jdk}'
69
70     parameters:
71         - project-parameter:
72             project: '{project}'
73         - p2zip-parameter
74
75     wrappers:
76         - opendaylight-infra-wrappers:
77             build-timeout: '{build-timeout}'
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: 'opendaylight-jenkins-ssh'
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         - opendaylight-infra-wrappers:
153             build-timeout: '{build-timeout}'
154
155     triggers:
156         - gerrit:
157             server-name: 'OpenDaylight'
158             trigger-on:
159                 - patchset-created-event:
160                     exclude-drafts: 'true'
161                     exclude-trivial-rebase: 'false'
162                     exclude-no-code-change: 'true'
163                 - draft-published-event
164                 - comment-added-contains-event:
165                     comment-contains-value: 'recheck'
166                 - comment-added-contains-event:
167                     comment-contains-value: 'reverify'
168             projects:
169               - project-compare-type: 'ANT'
170                 project-pattern: '{project}'
171                 branches:
172                   - branch-compare-type: 'ANT'
173                     branch-pattern: '**/{branch}'
174                 file-paths:
175                     - compare-type: ANT
176                       pattern: '{toxdir}/**'
177
178     builders:
179         - shell: |
180             virtualenv $WORKSPACE/venv-tox
181             source $WORKSPACE/venv-tox/bin/activate
182             pip install --upgrade pip
183             pip install --upgrade tox argparse
184             pip freeze
185             cd $WORKSPACE/repo/{toxdir}
186             tox
187
188     publishers:
189         - email-notification:
190             email-prefix: '[{project}]'
191
192 - job-template:
193     name: '{name}-merge-rtd-{stream}'
194     # Template for ReadTheDocs triggering
195
196     project-type: freestyle
197     node: dynamic_verify
198     concurrent: false
199
200     parameters:
201         - project-parameter:
202             project: '{project}'
203         - gerrit-parameters:
204             project: '{project}'
205             branch: '{branch}'
206             refspec: 'refs/heads/{branch}'
207
208     wrappers:
209         - opendaylight-infra-wrappers:
210             build-timeout: '{build-timeout}'
211
212     triggers:
213         - gerrit-trigger-patch-merged:
214             name: '{project}'
215             branch: '{branch}'
216
217     builders:
218         - shell: |
219             curl -X POST https://readthedocs.org/build/{rtdproject}
220
221     publishers:
222         - email-notification:
223             email-prefix: '[{project}]'
224
225 # Node related
226
227 - job-template:
228     name: '{name}-verify-node-{stream}'
229
230     # Job template for python verify jobs
231     #
232     # The purpose of this job template is to run node tests for projects using
233     # this template. It uses python virtualenv to install nodeenv and create a
234     # virtualenv for nodejs.
235     #
236     # Required Variables:
237     #     stream:    release stream (eg. stable-lithium or beryllium)
238     #     branch:    git branch (eg. stable/lithium or master)
239     #     nodedir:   directory of nodejs project to run node test against
240     #     nodever:   version of node to install in virtualenv
241
242     project-type: freestyle
243     node: dynamic_verify
244     concurrent: true
245
246     logrotate:
247         daysToKeep: '7'
248         numToKeep: '-1'
249         artifactDaysToKeep: '-1'
250         artifactNumToKeep: '-1'
251
252     parameters:
253         - project-parameter:
254             project: '{project}'
255         - gerrit-parameters:
256             project: '{project}'
257             branch: '{branch}'
258             refspec: 'refs/heads/{branch}'
259
260     scm:
261         - git:
262             credentials-id: 'opendaylight-jenkins-ssh'
263             url: '$GIT_BASE'
264             basedir: 'repo'
265             refspec: '$GERRIT_REFSPEC'
266             branches:
267                 - 'origin/$GERRIT_BRANCH'
268             skip-tag: true
269             choosing-strategy: 'gerrit'
270
271     wrappers:
272         - opendaylight-infra-wrappers:
273             build-timeout: '{build-timeout}'
274
275     triggers:
276         - gerrit:
277             server-name: 'OpenDaylight'
278             trigger-on:
279                 - patchset-created-event:
280                     exclude-drafts: 'true'
281                     exclude-trivial-rebase: 'false'
282                     exclude-no-code-change: 'true'
283                 - draft-published-event
284                 - comment-added-contains-event:
285                     comment-contains-value: 'recheck'
286                 - comment-added-contains-event:
287                     comment-contains-value: 'reverify'
288             projects:
289               - project-compare-type: 'ANT'
290                 project-pattern: '{project}'
291                 branches:
292                   - branch-compare-type: 'ANT'
293                     branch-pattern: '**/{branch}'
294                 file-paths:
295                     - compare-type: ANT
296                       pattern: '{nodedir}/**'
297
298     builders:
299         - shell: |
300             #!/bin/bash
301             # Prepare Python
302             virtualenv $WORKSPACE/venv-python
303             source $WORKSPACE/venv-python/bin/activate
304             pip install --upgrade pip
305             pip install --upgrade tox argparse nodeenv
306             pip freeze
307
308             # Prepare node
309             nodeenv --node={nodever} --prebuilt $WORKSPACE/venv-node
310             source $WORKSPACE/venv-node/bin/activate
311             cd $WORKSPACE/repo/{nodedir}
312             npm install
313             npm test
314
315     publishers:
316         - email-notification:
317             email-prefix: '[{project}]'