c39080eca03880b80cf34e89f865d54204345a06
[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-fetch-p2zip-if-necessary:
81             maven-version: '{mvn33}'
82             settings: '{project-settings}'
83             global-settings: '{odl-global-settings}'
84         - releng-generate-p2pom
85
86     maven:
87         maven-name: '{mvn33}'
88         root-pom: 'pom.xml'
89         goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r'
90         settings: '{project-settings}'
91         global-settings: '{odl-global-settings}'
92         post-step-run-condition: UNSTABLE
93
94     postbuilders:
95         - releng-update-p2composite-metadata:
96             maven-version: '{mvn33}'
97             settings: '{project-settings}'
98             global-settings: '{odl-global-settings}'
99
100     publishers:
101         - email-notification:
102             email-prefix: '[releng]'
103
104 - job-template:
105     name: '{name}-verify-python-{stream}'
106
107     # Job template for python verify jobs
108     #
109     # The purpose of this job template is to run tox for projects using this
110     # template.
111     #
112     # Required Variables:
113     #     stream:    release stream (eg. stable-lithium or beryllium)
114     #     branch:    git branch (eg. stable/lithium or master)
115     #     toxdir:    directory containing the project's tox.ini relative to
116     #                the workspace.
117
118     project-type: freestyle
119     node: dynamic_verify
120     concurrent: true
121
122     logrotate:
123         daysToKeep: '7'
124         numToKeep: '-1'
125         artifactDaysToKeep: '-1'
126         artifactNumToKeep: '-1'
127
128     parameters:
129         - project-parameter:
130             project: '{project}'
131         - gerrit-parameters:
132             project: '{project}'
133             branch: '{branch}'
134             refspec: 'refs/heads/{branch}'
135
136     scm:
137         - git:
138             credentials-id: '{ssh-credentials}'
139             url: '$GIT_BASE'
140             basedir: 'repo'
141             refspec: '$GERRIT_REFSPEC'
142             branches:
143                 - 'origin/$GERRIT_BRANCH'
144             skip-tag: true
145             choosing-strategy: 'gerrit'
146
147     wrappers:
148         - build-timeout
149         - ssh-agent-credentials:
150             users:
151                 - '{ssh-credentials}'
152
153     triggers:
154         - gerrit:
155             server-name: 'OpenDaylight'
156             trigger-on:
157                 - patchset-created-event:
158                     exclude-drafts: 'true'
159                     exclude-trivial-rebase: 'false'
160                     exclude-no-code-change: 'true'
161                 - draft-published-event
162                 - comment-added-contains-event:
163                     comment-contains-value: 'recheck'
164                 - comment-added-contains-event:
165                     comment-contains-value: 'reverify'
166             projects:
167               - project-compare-type: 'ANT'
168                 project-pattern: '{project}'
169                 branches:
170                   - branch-compare-type: 'ANT'
171                     branch-pattern: '**/{branch}'
172                 file-paths:
173                     - compare-type: ANT
174                       pattern: '{toxdir}/**'
175
176     builders:
177         - shell: |
178             virtualenv $WORKSPACE/venv-tox
179             source $WORKSPACE/venv-tox/bin/activate
180             pip install --upgrade pip
181             pip install --upgrade tox argparse
182             pip freeze
183             cd $WORKSPACE/repo/{toxdir}
184             tox
185
186     publishers:
187         - email-notification:
188             email-prefix: '[{project}]'
189
190 - job-template:
191     name: '{name}-merge-rtd-{stream}'
192     # Template for ReadTheDocs triggering
193
194     project-type: freestyle
195     node: dynamic_verify
196     concurrent: false
197
198     parameters:
199         - project-parameter:
200             project: '{project}'
201         - gerrit-parameters:
202             project: '{project}'
203             branch: '{branch}'
204             refspec: 'refs/heads/{branch}'
205
206     wrappers:
207         - build-timeout
208         - ssh-agent-credentials:
209             users:
210                 - '{ssh-credentials}'
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}]'