3 name: '{project-name}-release-java'
5 # Job template for producing a release candidate by creating a staging repo
8 project-type: freestyle
13 - opendaylight-infra-properties:
14 build-days-to-keep: 30
17 - opendaylight-infra-parameters:
18 os-cloud: '{os-cloud}'
21 refspec: 'refs/heads/{branch}'
22 artifacts: '{archive-artifacts}'
25 stage-id: '{stage-id}'
29 credentials-id: 'opendaylight-jenkins-ssh'
38 - opendaylight-infra-wrappers:
39 build-timeout: '{build-timeout}'
42 - wipe-org-opendaylight-repo
43 - jacoco-nojava-workaround
44 - provide-maven-settings:
45 global-settings-file: 'odl-global-settings'
46 settings-file: 'autorelease-settings'
48 maven-version: 'mvn33'
52 -Dmaven.repo.local=/tmp/r
53 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
55 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
57 - '-Xmx1024m -XX:MaxPermSize=256m'
58 settings: 'autorelease-settings'
60 global-settings: 'odl-global-settings'
61 global-settings-type: cfp
62 - releng-stage-release
66 email-recipients: '{email-recipients}'
67 email-prefix: '[releng]'
68 - opendaylight-infra-shiplogs:
69 maven-version: 'mvn33'
73 name: '{project-name}-publish-p2repo'
75 # Job template for publishing a p2 repo given a URL to a zipped p2repo.
77 project-type: freestyle
82 - opendaylight-infra-parameters:
83 os-cloud: '{os-cloud}'
86 refspec: 'refs/heads/{branch}'
87 artifacts: '{archive-artifacts}'
91 - opendaylight-infra-wrappers:
92 build-timeout: '{build-timeout}'
95 - wipe-org-opendaylight-repo
96 - jacoco-nojava-workaround
97 - releng-fetch-p2zip-if-necessary:
98 maven-version: 'mvn33'
99 settings: '{mvn-settings}'
100 global-settings: 'odl-global-settings'
101 - releng-generate-p2pom
103 maven-version: 'mvn33'
105 goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r'
106 settings: '{mvn-settings}'
108 global-settings: 'odl-global-settings'
109 global-settings-type: cfp
110 - releng-update-p2composite-metadata:
111 maven-version: 'mvn33'
112 settings: '{mvn-settings}'
113 global-settings: 'odl-global-settings'
116 - email-notification:
117 email-recipients: '{email-recipients}'
118 email-prefix: '[releng]'
119 - opendaylight-infra-shiplogs:
120 maven-version: 'mvn33'
122 # Generic tox-based verify action
124 - tox_builder_verify: &tox_builder_verify
125 name: tox_builder_verify
127 # Required Variables:
128 # branch: git branch (eg. stable/boron or master)
129 # toxdir: directory containing the project's tox.ini relative to
130 # the workspace. Empty works if tox.ini is at project root.
131 # Note that stream value is not needed.
133 project-type: freestyle
138 - opendaylight-infra-properties:
139 build-days-to-keep: 7
142 - opendaylight-infra-parameters:
143 os-cloud: '{os-cloud}'
146 refspec: 'refs/heads/{branch}'
147 artifacts: '{archive-artifacts}'
151 credentials-id: 'opendaylight-jenkins-ssh'
154 refspec: '$GERRIT_REFSPEC'
156 - 'origin/$GERRIT_BRANCH'
158 choosing-strategy: 'gerrit'
163 - opendaylight-infra-wrappers:
164 build-timeout: '{build-timeout}'
167 - gerrit-trigger-patch-submitted:
168 server: '{server-name}'
175 virtualenv $WORKSPACE/venv-tox
176 source $WORKSPACE/venv-tox/bin/activate
177 PYTHON="$WORKSPACE/venv-tox/bin/python"
178 $PYTHON -m pip install --upgrade pip
179 $PYTHON -m pip install --upgrade tox argparse
180 $PYTHON -m pip freeze
181 cd $WORKSPACE/repo/{toxdir}
185 - email-notification:
186 email-recipients: '{email-recipients}'
187 email-prefix: '[{project}]'
188 - opendaylight-infra-shiplogs:
189 maven-version: 'mvn33'
192 name: '{project-name}-verify-tox-{stream}'
194 # Job template for verify jobs executing tox envlist
196 # The purpose of this job template is to run tox for projects using this
199 # Required Variables:
200 # stream: release stream (eg. stable-lithium or beryllium)
201 # branch: git branch (eg. stable/lithium or master)
202 # toxdir: directory containing the project's tox.ini relative to
203 # the workspace. Empty works if tox.ini is at project root.
205 build-node: centos7-java-builder-2c-4g
207 <<: *tox_builder_verify
209 # Specification for projects outside release cycle, to avoid referring a stream.
210 # This is useful mailny for integration-test-jobs, which defines streams for Integration/Distribution,
211 # but the tox job is related to Integration/Test only.
214 name: '{project-name}-verify-tox-master'
216 # Job template for verify jobs executing tox envlist
218 # The purpose of this job template is to run tox for projects using this
221 # Required Variables:
222 # toxdir: directory containing the project's tox.ini relative to
223 # the workspace. Empty works if tox.ini is at project root.
225 build-node: centos7-java-builder-2c-4g
228 <<: *tox_builder_verify
230 # Python (pep8) specific, project should migrate to {project-name}-verify-tox-{stream}
233 name: '{project-name}-verify-python-{stream}'
235 # Job template for python verify jobs
237 # The purpose of this job template is to run tox for projects using this
240 # Required Variables:
241 # stream: release stream (eg. stable-lithium or beryllium)
242 # branch: git branch (eg. stable/lithium or master)
243 # toxdir: directory containing the project's tox.ini relative to
244 # the workspace. Empty works if tox.ini is at project root.
246 build-node: centos7-java-builder-2c-4g
248 <<: *tox_builder_verify
251 name: '{project-name}-merge-rtd-{stream}'
252 # Template for ReadTheDocs triggering
254 project-type: freestyle
259 - opendaylight-infra-parameters:
260 os-cloud: '{os-cloud}'
263 refspec: 'refs/heads/{branch}'
264 artifacts: '{archive-artifacts}'
267 - opendaylight-infra-wrappers:
268 build-timeout: '{build-timeout}'
271 - gerrit-trigger-patch-merged:
272 server-name: '{server-name}'
278 curl -X POST https://readthedocs.org/build/{rtdproject}
281 - email-notification:
282 email-recipients: '{email-recipients}'
283 email-prefix: '[{project}]'
284 - opendaylight-infra-shiplogs:
285 maven-version: 'mvn33'
290 name: '{project-name}-verify-node-{stream}'
292 # Job template for python verify jobs
294 # The purpose of this job template is to run node tests for projects using
295 # this template. It uses python virtualenv to install nodeenv and create a
296 # virtualenv for nodejs.
298 # Required Variables:
299 # stream: release stream (eg. boron or carbon)
300 # branch: git branch (eg. stable/boron or master)
301 # nodedir: directory of nodejs project to run node test against
302 # nodever: version of node to install in virtualenv
304 project-type: freestyle
309 - opendaylight-infra-properties:
310 build-days-to-keep: 7
313 - opendaylight-infra-parameters:
314 os-cloud: '{os-cloud}'
317 refspec: 'refs/heads/{branch}'
318 artifacts: '{archive-artifacts}'
322 credentials-id: 'opendaylight-jenkins-ssh'
325 refspec: '$GERRIT_REFSPEC'
327 - 'origin/$GERRIT_BRANCH'
329 choosing-strategy: 'gerrit'
332 - opendaylight-infra-wrappers:
333 build-timeout: '{build-timeout}'
336 - gerrit-trigger-patch-submitted:
337 server: '{server-name}'
340 files: '{nodedir}/**'
346 virtualenv $WORKSPACE/venv-python
347 source $WORKSPACE/venv-python/bin/activate
348 PYTHON="$WORKSPACE/venv-python/bin/python"
349 $PYTHON -m pip install --upgrade pip
350 $PYTHON -m pip install --upgrade tox argparse nodeenv
351 $PYTHON -m pip freeze
354 nodeenv --node={nodever} --prebuilt $WORKSPACE/venv-node
355 source $WORKSPACE/venv-node/bin/activate
356 cd $WORKSPACE/repo/{nodedir}
361 - email-notification:
362 email-recipients: '{email-recipients}'
363 email-prefix: '[{project}]'
364 - opendaylight-infra-shiplogs:
365 maven-version: 'mvn33'