a90aec478c532fb77ff9005b60487c18cf6f84e7
[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 - job-template:
63     name: '{name}-verify-python-{stream}'
64
65     # Job template for python verify jobs
66     #
67     # The purpose of this job template is to run tox for projects using this
68     # template.
69     #
70     # Required Variables:
71     #     stream:    release stream (eg. stable-lithium or beryllium)
72     #     branch:    git branch (eg. stable/lithium or master)
73     #     toxdir:    directory containing the project's tox.ini relative to
74     #                the workspace.
75
76     project-type: freestyle
77     node: dynamic_verify
78     concurrent: true
79
80     logrotate:
81         daysToKeep: '7'
82         numToKeep: '-1'
83         artifactDaysToKeep: '-1'
84         artifactNumToKeep: '-1'
85
86     parameters:
87         - project-parameter:
88             project: '{project}'
89         - gerrit-parameter:
90             branch: '{branch}'
91         - gerrit-refspec-parameter:
92             refspec: 'refs/heads/{branch}'
93
94     scm:
95         - git:
96             credentials-id: '{ssh-credentials}'
97             url: '$GIT_BASE'
98             basedir: 'repo'
99             refspec: '$GERRIT_REFSPEC'
100             branches:
101                 - 'origin/$GERRIT_BRANCH'
102             skip-tag: true
103             choosing-strategy: 'gerrit'
104
105     wrappers:
106         - build-timeout
107         - ssh-agent-credentials:
108             users:
109                 - '{ssh-credentials}'
110
111     triggers:
112         - gerrit:
113             server-name: 'OpenDaylight'
114             trigger-on:
115                 - patchset-created-event:
116                     exclude-drafts: 'true'
117                     exclude-trivial-rebase: 'false'
118                     exclude-no-code-change: 'true'
119                 - draft-published-event
120                 - comment-added-contains-event:
121                     comment-contains-value: 'recheck'
122                 - comment-added-contains-event:
123                     comment-contains-value: 'reverify'
124             projects:
125               - project-compare-type: 'ANT'
126                 project-pattern: '{project}'
127                 branches:
128                   - branch-compare-type: 'ANT'
129                     branch-pattern: '**/{branch}'
130                 file-paths:
131                     - compare-type: ANT
132                       pattern: '{toxdir}/**'
133
134     builders:
135         - shell: |
136             virtualenv $WORKSPACE/venv-tox
137             source $WORKSPACE/venv-tox/bin/activate
138             pip install --upgrade pip
139             pip install --upgrade tox argparse
140             pip freeze
141             cd $WORKSPACE/repo/{toxdir}
142             tox
143
144     publishers:
145         - email-notification:
146             email-prefix: '[{project}]'
147
148 - job-template:
149     name: '{name}-merge-rtd-{stream}'
150     # Template for ReadTheDocs triggering
151
152     project-type: freestyle
153     node: dynamic_verify
154     concurrent: false
155
156     parameters:
157         - project-parameter:
158             project: '{project}'
159         - gerrit-parameter:
160             branch: '{branch}'
161         - gerrit-refspec-parameter:
162             refspec: 'refs/heads/{branch}'
163
164     wrappers:
165         - build-timeout
166         - ssh-agent-credentials:
167             users:
168                 - '{ssh-credentials}'
169
170     triggers:
171         - gerrit-trigger-patch-merged:
172             name: '{project}'
173             branch: '{branch}'
174
175     builders:
176         - shell: |
177             curl -X POST https://readthedocs.org/build/{rtdproject}
178
179     publishers:
180         - email-notification:
181             email-prefix: '[{project}]'