be6ddc73dac70f8bcdd9c538553096e0e74cfacf
[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
37     prebuilders:
38         - wipe-org-opendaylight-repo
39         - jacoco-nojava-workaround
40         - provide-maven-settings:
41             global-settings-file: '{odl-global-settings}'
42             settings-file: '{autorelease-settings}'
43
44     maven:
45         maven-name: '{mvn33}'
46         root-pom: 'pom.xml'
47         goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage'
48         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
49         settings: '{autorelease-settings}'
50         global-settings: '{odl-global-settings}'
51         post-step-run-condition: UNSTABLE
52
53     postbuilders:
54         - releng-stage-release
55
56     publishers:
57         - archive-artifacts:
58             artifacts: '*.log'
59         - email-notification:
60             email-prefix: '[releng]'
61
62
63 - job-template:
64     name: '{name}-publish-p2repo'
65
66     # Job template for publishing a p2 repo given a URL to a zipped p2repo.
67
68     project-type: maven
69     node: dynamic_merge
70     jdk: '{jdk}'
71
72     parameters:
73         - project-parameter:
74             project: '{project}'
75         - p2zip-parameter
76
77     prebuilders:
78         - wipe-org-opendaylight-repo
79         - jacoco-nojava-workaround
80         - releng-generate-p2pom
81
82     maven:
83         maven-name: '{mvn33}'
84         root-pom: 'pom.xml'
85         goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r'
86         settings: '{project-settings}'
87         global-settings: '{odl-global-settings}'
88         post-step-run-condition: UNSTABLE
89
90     postbuilders:
91         - releng-update-p2composite-metadata:
92             maven-version: '{mvn33}'
93             settings: '{project-settings}'
94             global-settings: '{odl-global-settings}'
95
96     publishers:
97         - email-notification:
98             email-prefix: '[releng]'
99
100 - job-template:
101     name: '{name}-verify-python-{stream}'
102
103     # Job template for python verify jobs
104     #
105     # The purpose of this job template is to run tox for projects using this
106     # template.
107     #
108     # Required Variables:
109     #     stream:    release stream (eg. stable-lithium or beryllium)
110     #     branch:    git branch (eg. stable/lithium or master)
111     #     toxdir:    directory containing the project's tox.ini relative to
112     #                the workspace.
113
114     project-type: freestyle
115     node: dynamic_verify
116     concurrent: true
117
118     logrotate:
119         daysToKeep: '7'
120         numToKeep: '-1'
121         artifactDaysToKeep: '-1'
122         artifactNumToKeep: '-1'
123
124     parameters:
125         - project-parameter:
126             project: '{project}'
127         - gerrit-parameter:
128             branch: '{branch}'
129         - gerrit-refspec-parameter:
130             refspec: 'refs/heads/{branch}'
131
132     scm:
133         - git:
134             credentials-id: '{ssh-credentials}'
135             url: '$GIT_BASE'
136             basedir: 'repo'
137             refspec: '$GERRIT_REFSPEC'
138             branches:
139                 - 'origin/$GERRIT_BRANCH'
140             skip-tag: true
141             choosing-strategy: 'gerrit'
142
143     wrappers:
144         - build-timeout
145         - ssh-agent-credentials:
146             users:
147                 - '{ssh-credentials}'
148
149     triggers:
150         - gerrit:
151             server-name: 'OpenDaylight'
152             trigger-on:
153                 - patchset-created-event:
154                     exclude-drafts: 'true'
155                     exclude-trivial-rebase: 'false'
156                     exclude-no-code-change: 'true'
157                 - draft-published-event
158                 - comment-added-contains-event:
159                     comment-contains-value: 'recheck'
160                 - comment-added-contains-event:
161                     comment-contains-value: 'reverify'
162             projects:
163               - project-compare-type: 'ANT'
164                 project-pattern: '{project}'
165                 branches:
166                   - branch-compare-type: 'ANT'
167                     branch-pattern: '**/{branch}'
168                 file-paths:
169                     - compare-type: ANT
170                       pattern: '{toxdir}/**'
171
172     builders:
173         - shell: |
174             virtualenv $WORKSPACE/venv-tox
175             source $WORKSPACE/venv-tox/bin/activate
176             pip install --upgrade pip
177             pip install --upgrade tox argparse
178             pip freeze
179             cd $WORKSPACE/repo/{toxdir}
180             tox
181
182     publishers:
183         - email-notification:
184             email-prefix: '[{project}]'
185
186 - job-template:
187     name: '{name}-merge-rtd-{stream}'
188     # Template for ReadTheDocs triggering
189
190     project-type: freestyle
191     node: dynamic_verify
192     concurrent: false
193
194     parameters:
195         - project-parameter:
196             project: '{project}'
197         - gerrit-parameter:
198             branch: '{branch}'
199         - gerrit-refspec-parameter:
200             refspec: 'refs/heads/{branch}'
201
202     wrappers:
203         - build-timeout
204         - ssh-agent-credentials:
205             users:
206                 - '{ssh-credentials}'
207
208     triggers:
209         - gerrit-trigger-patch-merged:
210             name: '{project}'
211             branch: '{branch}'
212
213     builders:
214         - shell: |
215             curl -X POST https://readthedocs.org/build/{rtdproject}
216
217     publishers:
218         - email-notification:
219             email-prefix: '[{project}]'