Fix RTD Verify job Gerrit Triggers
[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     #     :rtd-project: This is the name of the project on ReadTheDocs.org.
78     #
79     # Optional parameters:
80     #
81     #     :branch: Git branch to fetch for the build. (default: master)
82     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
83     #     :build-node: The node to run build on.
84     #     :build-timeout: Timeout in seconds before aborting build. (default: 15)
85     #     :git-url: base URL of git project. (default: https://github.com)
86     #     :project-pattern: Project to trigger build against. (default: **)
87     #     :stream: Keyword that can be used to represent a release code-name.
88     #         Often the same as the branch. (default: master)
89
90     ######################
91     # Default parameters #
92     ######################
93
94     branch: master
95     build-days-to-keep: 7
96     build-timeout: 15
97     git-url: https://github.com
98     project-pattern: '**'
99     stream: master
100     submodule-recursive: true
101
102     #####################
103     # Job Configuration #
104     #####################
105
106     builders:
107       - lf-rtd-trigger-build:
108           rtd-project: '{rtd-project}'
109
110 - job-template:
111     name: '{project-name}-rtd-merge-{stream}'
112     id: gerrit-rtd-merge
113     <<: *lf_rtd_common
114     # yamllint disable-line rule:key-duplicates
115     <<: *lf_rtd_merge
116
117     triggers:
118       - gerrit:
119           server-name: '{gerrit-server-name}'
120           trigger-on:
121             - change-merged-event
122             - comment-added-contains-event:
123                 comment-contains-value: 'remerge$'
124           projects:
125             - project-compare-type: 'ANT'
126               project-pattern: '{project-pattern}'
127               branches:
128                 - branch-compare-type: 'ANT'
129                   branch-pattern: '**/{branch}'
130               file-paths: '{obj:gerrit_trigger_file_paths}'
131
132 - job-template:
133     name: '{project-name}-rtd-merge-{stream}'
134     id: github-rtd-merge
135     <<: *lf_rtd_common
136     # yamllint disable-line rule:key-duplicates
137     <<: *lf_rtd_merge
138
139     properties:
140       - github:
141           url: '{git-url}/{github-org}/{project}'
142
143     triggers:
144       - lf-infra-github-pr-trigger:
145           trigger-phrase: '^remerge$'
146           only-trigger-phrase: false
147           status-context: 'RTD Merge'
148           permit-all: true
149           github-hooks: true
150           github-org: ''
151           github_pr_whitelist:
152             - ''
153           github_pr_admin_list:
154             - ''
155       - timed: 'H H * * *'
156
157 #############
158 # RTD VERIFY#
159 #############
160
161 - lf_rtd_verify: &lf_rtd_verify
162     name: lf-rtd-verify
163     # Verify job which runs a tox build of the docs project
164     #
165     # Optional parameters:
166     #
167     #     :branch: Git branch to fetch for the build. (default: master)
168     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
169     #     :build-node: The node to run build on.
170     #     :build-timeout: Timeout in seconds before aborting build. (default: 15)
171     #     :doc-dir: Directory where tox will place built docs.
172     #         as defined in the tox.ini (default: docs/_build/html)
173     #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
174     #     :project-pattern: Project to trigger build against. (default: **)
175     #     :stream: Keyword that can be used to represent a release code-name.
176     #         Often the same as the branch. (default: master)
177     #     :submodule-recursive: Whether to checkout submodules recursively.
178     #         (default: true)
179     #
180     #     :gerrit_verify_triggers: Override Gerrit Triggers.
181     #     :gerrit_trigger_file_paths: Override file paths which can be used to
182     #         filter which file modifications will trigger a build.
183     #         (default: - compare-type: ANT
184     #                     pattern: '**/*.rst'
185     #                   - compare-type: ANT
186     #                     pattern: '**/conf.py')
187
188     ######################
189     # Default parameters #
190     ######################
191
192     branch: master
193     build-days-to-keep: 7
194     build-timeout: 15
195     doc-dir: docs/_build/html
196     git-url: '$GIT_URL/$PROJECT'
197     project-pattern: '**'
198     stream: master
199     submodule-recursive: true
200
201     gerrit_verify_triggers:
202       - patchset-created-event:
203           exclude-drafts: false
204           exclude-trivial-rebase: false
205           exclude-no-code-change: false
206       - draft-published-event
207       - comment-added-contains-event:
208           comment-contains-value: recheck$
209
210     #####################
211     # Job Configuration #
212     #####################
213
214     builders:
215       - lf-rtd-verify:
216           doc-dir: '{doc-dir}'
217
218 - job-template:
219     name: '{project-name}-rtd-verify-{stream}'
220     id: gerrit-rtd-verify
221     concurrent: true
222     <<: *lf_rtd_common
223     # yamllint disable-line rule:key-duplicates
224     <<: *lf_rtd_verify
225
226     scm:
227       - lf-infra-gerrit-scm:
228           branch: '{branch}'
229           jenkins-ssh-credential: '{jenkins-ssh-credential}'
230           git-url: '{git-url}'
231           refspec: ''
232           submodule-recursive: '{submodule-recursive}'
233           choosing-strategy: default
234
235     triggers:
236       - gerrit:
237           server-name: '{gerrit-server-name}'
238           trigger-on: '{obj:gerrit_verify_triggers}'
239           projects:
240             - project-compare-type: 'ANT'
241               project-pattern: '{project-pattern}'
242               branches:
243                 - branch-compare-type: 'ANT'
244                   branch-pattern: '**/{branch}'
245               file-paths: '{obj:gerrit_trigger_file_paths}'
246
247 - job-template:
248     name: '{project-name}-rtd-verify-{stream}'
249     id: github-rtd-verify
250     concurrent: true
251     <<: *lf_rtd_common
252     # yamllint disable-line rule:key-duplicates
253     <<: *lf_rtd_verify
254
255     properties:
256       - github:
257           url: '{git-url}/{github-org}/{project}'
258
259     scm:
260       - lf-infra-github-scm:
261           url: '{git-clone-url}{github-org}/{project}'
262           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
263           branch: '{branch}'
264           submodule-recursive: '{submodule-recursive}'
265           choosing-strategy: default
266           jenkins-ssh-credential: '{jenkins-ssh-credential}'
267
268     triggers:
269       - lf-infra-github-pr-trigger:
270           trigger-phrase: '^recheck$'
271           only-trigger-phrase: false
272           status-context: 'RTD Verify'
273           permit-all: true
274           github-hooks: true
275           github-org: ''
276           github_pr_whitelist:
277             - ''
278           github_pr_admin_list:
279             - ''