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: '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: 'global-settings'
61 global-settings-type: cfp
62 - releng-stage-release
66 email-recipients: '{email-recipients}'
67 email-prefix: '[releng]'
72 name: '{project-name}-publish-p2repo'
74 # Job template for publishing a p2 repo given a URL to a zipped p2repo.
76 project-type: freestyle
81 - opendaylight-infra-parameters:
82 os-cloud: '{os-cloud}'
85 refspec: 'refs/heads/{branch}'
86 artifacts: '{archive-artifacts}'
90 - opendaylight-infra-wrappers:
91 build-timeout: '{build-timeout}'
94 - wipe-org-opendaylight-repo
95 - jacoco-nojava-workaround
96 - releng-fetch-p2zip-if-necessary:
97 maven-version: 'mvn33'
98 settings: '{mvn-settings}'
99 global-settings: 'global-settings'
100 - releng-generate-p2pom
102 maven-version: 'mvn33'
104 goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r'
105 settings: '{mvn-settings}'
107 global-settings: 'global-settings'
108 global-settings-type: cfp
109 - releng-update-p2composite-metadata:
110 maven-version: 'mvn33'
111 settings: '{mvn-settings}'
112 global-settings: 'global-settings'
115 - email-notification:
116 email-recipients: '{email-recipients}'
117 email-prefix: '[releng]'
120 # Generic tox-based verify action
122 - tox_builder_verify: &tox_builder_verify
123 name: tox_builder_verify
125 # Required Variables:
126 # branch: git branch (eg. stable/boron or master)
127 # toxdir: directory containing the project's tox.ini relative to
128 # the workspace. Empty works if tox.ini is at project root.
129 # Note that stream value is not needed.
131 project-type: freestyle
136 - opendaylight-infra-properties:
137 build-days-to-keep: 7
140 - opendaylight-infra-parameters:
141 os-cloud: '{os-cloud}'
144 refspec: 'refs/heads/{branch}'
145 artifacts: '{archive-artifacts}'
149 credentials-id: 'opendaylight-jenkins-ssh'
152 refspec: '$GERRIT_REFSPEC'
154 - 'origin/$GERRIT_BRANCH'
156 choosing-strategy: 'gerrit'
161 - opendaylight-infra-wrappers:
162 build-timeout: '{build-timeout}'
165 - gerrit-trigger-patch-submitted:
166 server: '{server-name}'
173 virtualenv $WORKSPACE/venv-tox
174 source $WORKSPACE/venv-tox/bin/activate
175 PYTHON="$WORKSPACE/venv-tox/bin/python"
176 $PYTHON -m pip install --upgrade pip
177 $PYTHON -m pip install --upgrade tox argparse
178 $PYTHON -m pip install --upgrade pipdeptree
180 cd $WORKSPACE/repo/{toxdir}
184 - email-notification:
185 email-recipients: '{email-recipients}'
186 email-prefix: '[{project}]'
190 name: '{project-name}-verify-tox-{stream}'
192 # Job template for verify jobs executing tox envlist
194 # The purpose of this job template is to run tox for projects using this
197 # Required Variables:
198 # stream: release stream (eg. stable-lithium or beryllium)
199 # branch: git branch (eg. stable/lithium or master)
200 # toxdir: directory containing the project's tox.ini relative to
201 # the workspace. Empty works if tox.ini is at project root.
203 build-node: centos7-java-builder-2c-4g
205 <<: *tox_builder_verify
207 # Specification for projects outside release cycle, to avoid referring a stream.
208 # This is useful mailny for integration-test-jobs, which defines streams for Integration/Distribution,
209 # but the tox job is related to Integration/Test only.
212 name: '{project-name}-verify-tox-master'
214 # Job template for verify jobs executing tox envlist
216 # The purpose of this job template is to run tox for projects using this
219 # Required Variables:
220 # toxdir: directory containing the project's tox.ini relative to
221 # the workspace. Empty works if tox.ini is at project root.
223 build-node: centos7-java-builder-2c-4g
226 <<: *tox_builder_verify
228 # Python (pep8) specific, project should migrate to {project-name}-verify-tox-{stream}
231 name: '{project-name}-verify-python-{stream}'
233 # Job template for python verify jobs
235 # The purpose of this job template is to run tox for projects using this
238 # Required Variables:
239 # stream: release stream (eg. stable-lithium or beryllium)
240 # branch: git branch (eg. stable/lithium or master)
241 # toxdir: directory containing the project's tox.ini relative to
242 # the workspace. Empty works if tox.ini is at project root.
244 build-node: centos7-java-builder-2c-4g
246 <<: *tox_builder_verify
249 name: '{project-name}-merge-rtd-{stream}'
250 # Template for ReadTheDocs triggering
252 project-type: freestyle
257 - opendaylight-infra-parameters:
258 os-cloud: '{os-cloud}'
261 refspec: 'refs/heads/{branch}'
262 artifacts: '{archive-artifacts}'
265 - opendaylight-infra-wrappers:
266 build-timeout: '{build-timeout}'
269 - gerrit-trigger-patch-merged:
270 server-name: '{server-name}'
276 curl -X POST https://readthedocs.org/build/{rtdproject}
279 - email-notification:
280 email-recipients: '{email-recipients}'
281 email-prefix: '[{project}]'
287 name: '{project-name}-verify-node-{stream}'
289 # Job template for python verify jobs
291 # The purpose of this job template is to run node tests for projects using
292 # this template. It uses python virtualenv to install nodeenv and create a
293 # virtualenv for nodejs.
295 # Required Variables:
296 # stream: release stream (eg. boron or carbon)
297 # branch: git branch (eg. stable/boron or master)
298 # nodedir: directory of nodejs project to run node test against
299 # nodever: version of node to install in virtualenv
301 project-type: freestyle
306 - opendaylight-infra-properties:
307 build-days-to-keep: 7
310 - opendaylight-infra-parameters:
311 os-cloud: '{os-cloud}'
314 refspec: 'refs/heads/{branch}'
315 artifacts: '{archive-artifacts}'
319 credentials-id: 'opendaylight-jenkins-ssh'
322 refspec: '$GERRIT_REFSPEC'
324 - 'origin/$GERRIT_BRANCH'
326 choosing-strategy: 'gerrit'
329 - opendaylight-infra-wrappers:
330 build-timeout: '{build-timeout}'
333 - gerrit-trigger-patch-submitted:
334 server: '{server-name}'
337 files: '{nodedir}/**'
343 virtualenv $WORKSPACE/venv-python
344 source $WORKSPACE/venv-python/bin/activate
345 PYTHON="$WORKSPACE/venv-python/bin/python"
346 $PYTHON -m pip install --upgrade pip
347 $PYTHON -m pip install --upgrade tox argparse nodeenv
348 $PYTHON -m pip install --upgrade pipdeptree
352 nodeenv --node={nodever} --prebuilt $WORKSPACE/venv-node
353 source $WORKSPACE/venv-node/bin/activate
354 cd $WORKSPACE/repo/{nodedir}
359 - email-notification:
360 email-recipients: '{email-recipients}'
361 email-prefix: '[{project}]'