Merge "Migrate node-verify job to global-jjb"
[releng/global-jjb.git] / jjb / lf-rtd-jobs.yaml
1 ---
2 - job-group:
3     name: '{project-name}-rtd-jobs'
4
5     # This job group contains all the ReadTheDocs jobs
6
7     jobs:
8       - gerrit-rtd-merge
9       - gerrit-rtd-verify
10
11 - job-group:
12     name: '{project-name}-github-rtd-jobs'
13
14     # This job group contains all the ReadTheDocs jobs
15
16     jobs:
17       - github-rtd-merge
18       - github-rtd-verify
19
20 ####################
21 # COMMON FUNCTIONS #
22 ####################
23
24 - lf_rtd_common: &lf_rtd_common
25     name: lf-rtd-common
26     # RTD verify and merge jobs are the same except for their scm, trigger, and
27     # builders definition. This anchor is the common template.
28
29     ######################
30     # Default parameters #
31     ######################
32
33     gerrit_trigger_file_paths:
34       - compare-type: ANT
35         pattern: '**/*.rst'
36       - compare-type: ANT
37         pattern: '**/conf.py'
38
39     #####################
40     # Job Configuration #
41     #####################
42
43     project-type: freestyle
44     node: '{build-node}'
45
46     properties:
47       - lf-infra-properties:
48           build-days-to-keep: 7
49
50     parameters:
51       - lf-infra-parameters:
52           project: '{project}'
53           branch: '{branch}'
54           refspec: 'refs/heads/{branch}'
55           stream: '{stream}'
56           lftools-version: '{lftools-version}'
57
58     wrappers:
59       - lf-infra-wrappers:
60           build-timeout: '{build-timeout}'
61           jenkins-ssh-credential: '{jenkins-ssh-credential}'
62
63     publishers:
64       - lf-infra-publish
65
66 #############
67 # RTD MERGE #
68 #############
69
70 - lf_rtd_merge: &lf_rtd_merge
71     name: lf-rtd-merge
72
73     # Merge job which triggers a POST of the docs project to readthedocs
74     #
75     # Required parameters:
76     #
77     #     :build-node: The node to run build on.
78     #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
79     #         be configured in defaults.yaml)
80     #     :rtd-project: This is the name of the project on ReadTheDocs.org.
81     #
82     # Optional parameters:
83     #
84     #     :branch: Git branch to fetch for the build. (default: master)
85     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
86     #     :build-timeout: Timeout in seconds before aborting build. (default: 15)
87     #     :git-url: base URL of git project. (default: https://github.com)
88     #     :project-pattern: Project to trigger build against. (default: **)
89     #     :stream: Keyword that can be used to represent a release code-name.
90     #         Often the same as the branch. (default: master)
91     #     :submodule-recursive: Whether to checkout submodules recursively.
92     #         (default: true)
93     #
94     #     :gerrit_merge_triggers: Override Gerrit Triggers.
95     #     :gerrit_trigger_file_paths: Override file paths which can be used to
96     #         filter which file modifications will trigger a build.
97     #         (default: - compare-type: ANT
98     #                     pattern: '**/*.rst'
99     #                   - compare-type: ANT
100     #                     pattern: '**/conf.py')
101
102     ######################
103     # Default parameters #
104     ######################
105
106     branch: master
107     build-days-to-keep: 7
108     build-timeout: 15
109     git-url: https://github.com
110     project-pattern: '**'
111     stream: master
112     submodule-recursive: true
113
114     gerrit_merge_triggers:
115       - change-merged-event
116       - comment-added-contains-event:
117           comment-contains-value: remerge$
118
119     #####################
120     # Job Configuration #
121     #####################
122
123     builders:
124       - lf-rtd-trigger-build:
125           rtd-project: '{rtd-project}'
126
127 - job-template:
128     name: '{project-name}-rtd-merge-{stream}'
129     id: gerrit-rtd-merge
130     <<: *lf_rtd_common
131     # yamllint disable-line rule:key-duplicates
132     <<: *lf_rtd_merge
133
134     triggers:
135       - gerrit:
136           server-name: '{gerrit-server-name}'
137           trigger-on: '{obj:gerrit_merge_triggers}'
138           projects:
139             - project-compare-type: 'ANT'
140               project-pattern: '{project-pattern}'
141               branches:
142                 - branch-compare-type: 'ANT'
143                   branch-pattern: '**/{branch}'
144               file-paths: '{obj:gerrit_trigger_file_paths}'
145
146 - job-template:
147     name: '{project-name}-rtd-merge-{stream}'
148     id: github-rtd-merge
149     <<: *lf_rtd_common
150     # yamllint disable-line rule:key-duplicates
151     <<: *lf_rtd_merge
152
153     properties:
154       - github:
155           url: '{git-url}/{github-org}/{project}'
156
157     triggers:
158       - lf-infra-github-pr-trigger:
159           trigger-phrase: '^remerge$'
160           only-trigger-phrase: false
161           status-context: 'RTD Merge'
162           permit-all: true
163           github-hooks: true
164           github-org: ''
165           github_pr_whitelist:
166             - ''
167           github_pr_admin_list:
168             - ''
169       - timed: 'H H * * *'
170
171 #############
172 # RTD VERIFY#
173 #############
174
175 - lf_rtd_verify: &lf_rtd_verify
176     name: lf-rtd-verify
177     # Verify job which runs a tox build of the docs project
178     #
179     # Required Parameters:
180     #
181     #     :build-node: The node to run build on.
182     #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
183     #         be configured in defaults.yaml)
184     #
185     # Optional Parameters:
186     #
187     #     :branch: Git branch to fetch for the build. (default: master)
188     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
189     #     :build-node: The node to run build on.
190     #     :build-timeout: Timeout in seconds before aborting build. (default: 15)
191     #     :doc-dir: Directory where tox will place built docs.
192     #         as defined in the tox.ini (default: docs/_build/html)
193     #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
194     #     :project-pattern: Project to trigger build against. (default: **)
195     #     :stream: Keyword that can be used to represent a release code-name.
196     #         Often the same as the branch. (default: master)
197     #     :submodule-recursive: Whether to checkout submodules recursively.
198     #         (default: true)
199     #
200     #     :gerrit_verify_triggers: Override Gerrit Triggers.
201     #     :gerrit_trigger_file_paths: Override file paths which can be used to
202     #         filter which file modifications will trigger a build.
203     #         (default: - compare-type: ANT
204     #                     pattern: '**/*.rst'
205     #                   - compare-type: ANT
206     #                     pattern: '**/conf.py')
207
208     ######################
209     # Default parameters #
210     ######################
211
212     branch: master
213     build-days-to-keep: 7
214     build-timeout: 15
215     doc-dir: docs/_build/html
216     git-url: '$GIT_URL/$PROJECT'
217     project-pattern: '**'
218     stream: master
219     submodule-recursive: true
220
221     gerrit_verify_triggers:
222       - patchset-created-event:
223           exclude-drafts: true
224           exclude-trivial-rebase: false
225           exclude-no-code-change: false
226       - draft-published-event
227       - comment-added-contains-event:
228           comment-contains-value: recheck$
229
230     #####################
231     # Job Configuration #
232     #####################
233
234     builders:
235       - lf-rtd-verify:
236           doc-dir: '{doc-dir}'
237
238 - job-template:
239     name: '{project-name}-rtd-verify-{stream}'
240     id: gerrit-rtd-verify
241     concurrent: true
242     <<: *lf_rtd_common
243     # yamllint disable-line rule:key-duplicates
244     <<: *lf_rtd_verify
245
246     scm:
247       - lf-infra-gerrit-scm:
248           branch: '{branch}'
249           jenkins-ssh-credential: '{jenkins-ssh-credential}'
250           git-url: '{git-url}'
251           refspec: ''
252           submodule-recursive: '{submodule-recursive}'
253           choosing-strategy: default
254
255     triggers:
256       - gerrit:
257           server-name: '{gerrit-server-name}'
258           trigger-on: '{obj:gerrit_verify_triggers}'
259           projects:
260             - project-compare-type: 'ANT'
261               project-pattern: '{project-pattern}'
262               branches:
263                 - branch-compare-type: 'ANT'
264                   branch-pattern: '**/{branch}'
265               file-paths: '{obj:gerrit_trigger_file_paths}'
266
267 - job-template:
268     name: '{project-name}-rtd-verify-{stream}'
269     id: github-rtd-verify
270     concurrent: true
271     <<: *lf_rtd_common
272     # yamllint disable-line rule:key-duplicates
273     <<: *lf_rtd_verify
274
275     properties:
276       - github:
277           url: '{git-url}/{github-org}/{project}'
278
279     scm:
280       - lf-infra-github-scm:
281           url: '{git-clone-url}{github-org}/{project}'
282           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
283           branch: '{branch}'
284           submodule-recursive: '{submodule-recursive}'
285           choosing-strategy: default
286           jenkins-ssh-credential: '{jenkins-ssh-credential}'
287
288     triggers:
289       - lf-infra-github-pr-trigger:
290           trigger-phrase: '^recheck$'
291           only-trigger-phrase: false
292           status-context: 'RTD Verify'
293           permit-all: true
294           github-hooks: true
295           github-org: ''
296           github_pr_whitelist:
297             - ''
298           github_pr_admin_list:
299             - ''