Add option to disable-job for all jobs
[releng/global-jjb.git] / jjb / lf-rtd-jobs.yaml
1 ---
2 - job-group:
3     name: '{project-name}-rtd-jobs'
4
5     jobs:
6       - gerrit-rtd-merge
7       - gerrit-rtd-verify
8
9 - job-group:
10     name: '{project-name}-github-rtd-jobs'
11
12     jobs:
13       - github-rtd-merge
14       - github-rtd-verify
15
16 ####################
17 # COMMON FUNCTIONS #
18 ####################
19
20 - lf_rtd_common: &lf_rtd_common
21     name: lf-rtd-common
22
23     ######################
24     # Default parameters #
25     ######################
26
27     gerrit_trigger_file_paths:
28       - compare-type: REG_EXP
29         pattern: '.*\.css'
30       - compare-type: REG_EXP
31         pattern: '.*\.html'
32       - compare-type: REG_EXP
33         pattern: '.*\.rst'
34       - compare-type: REG_EXP
35         pattern: '.*\/conf.py'
36
37     # github_included_regions MUST match gerrit_trigger_file_paths
38     github_included_regions:
39       - '.*\.css'
40       - '.*\.html'
41       - '.*\.rst'
42       - '.*\/conf.py'
43
44     #####################
45     # Job Configuration #
46     #####################
47
48     project-type: freestyle
49     node: '{build-node}'
50
51     properties:
52       - lf-infra-properties:
53           build-days-to-keep: 7
54
55     parameters:
56       - lf-infra-parameters:
57           project: '{project}'
58           branch: '{branch}'
59           refspec: 'refs/heads/{branch}'
60           stream: '{stream}'
61           lftools-version: '{lftools-version}'
62
63     wrappers:
64       - lf-infra-wrappers:
65           build-timeout: '{build-timeout}'
66           jenkins-ssh-credential: '{jenkins-ssh-credential}'
67
68     publishers:
69       - lf-infra-publish
70
71 #############
72 # RTD MERGE #
73 #############
74
75 - lf_rtd_merge: &lf_rtd_merge
76     name: lf-rtd-merge
77
78     ######################
79     # Default parameters #
80     ######################
81
82     branch: master
83     build-days-to-keep: 7
84     build-timeout: 15
85     disable-job: false
86     git-url: https://github.com
87     github-url: 'https://github.com'
88     project-pattern: '**'
89     stream: master
90     submodule-recursive: true
91
92     gerrit_merge_triggers:
93       - change-merged-event
94       - comment-added-contains-event:
95           comment-contains-value: remerge$
96
97     #####################
98     # Job Configuration #
99     #####################
100
101     disabled: '{disable-job}'
102
103     builders:
104       - lf-rtd-trigger-build:
105           rtd-build-url: '{rtd-build-url}'
106           rtd-token: '{rtd-token}'
107
108 - job-template:
109     name: '{project-name}-rtd-merge-{stream}'
110     id: gerrit-rtd-merge
111     <<: *lf_rtd_common
112     # yamllint disable-line rule:key-duplicates
113     <<: *lf_rtd_merge
114
115     triggers:
116       - gerrit:
117           server-name: '{gerrit-server-name}'
118           trigger-on: '{obj:gerrit_merge_triggers}'
119           projects:
120             - project-compare-type: 'ANT'
121               project-pattern: '{project-pattern}'
122               branches:
123                 - branch-compare-type: 'ANT'
124                   branch-pattern: '**/{branch}'
125               file-paths: '{obj:gerrit_trigger_file_paths}'
126
127 - job-template:
128     name: '{project-name}-rtd-merge-{stream}'
129     id: github-rtd-merge
130     <<: *lf_rtd_common
131     # yamllint disable-line rule:key-duplicates
132     <<: *lf_rtd_merge
133
134     properties:
135       - lf-infra-properties:
136           build-days-to-keep: '{build-days-to-keep}'
137       - github:
138           url: '{github-url}/{github-org}/{project}'
139
140     triggers:
141       - timed: 'H H * * *'
142       - github
143       - pollscm:
144           cron: ''
145       - github-pull-request:
146           trigger-phrase: '^remerge$'
147           only-trigger-phrase: true
148           status-context: 'RTD Merge'
149           permit-all: true
150           github-hooks: true
151           org-list:
152             - '{github-org}'
153           white-list: '{obj:github_pr_whitelist}'
154           admin-list: '{obj:github_pr_admin_list}'
155           included-regions: '{obj:github_included_regions}'
156           white-list-target-branches:
157             - '{branch}'
158
159 #############
160 # RTD VERIFY#
161 #############
162
163 - lf_rtd_verify: &lf_rtd_verify
164     name: lf-rtd-verify
165
166     ######################
167     # Default parameters #
168     ######################
169
170     branch: master
171     build-days-to-keep: 7
172     build-timeout: 15
173     disable-job: false
174     doc-dir: docs/_build/html
175     git-url: '$GIT_URL/$PROJECT'
176     github-url: 'https://github.com'
177     project-pattern: '**'
178     stream: master
179     submodule-recursive: true
180
181     gerrit_verify_triggers:
182       - patchset-created-event:
183           exclude-drafts: true
184           exclude-trivial-rebase: false
185           exclude-no-code-change: false
186       - draft-published-event
187       - comment-added-contains-event:
188           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
189
190     #####################
191     # Job Configuration #
192     #####################
193
194     disabled: '{disable-job}'
195
196     builders:
197       - lf-rtd-verify:
198           doc-dir: '{doc-dir}'
199
200 - job-template:
201     name: '{project-name}-rtd-verify-{stream}'
202     id: gerrit-rtd-verify
203     concurrent: true
204     <<: *lf_rtd_common
205     # yamllint disable-line rule:key-duplicates
206     <<: *lf_rtd_verify
207
208     scm:
209       - lf-infra-gerrit-scm:
210           branch: '$GERRIT_BRANCH'
211           jenkins-ssh-credential: '{jenkins-ssh-credential}'
212           git-url: '{git-url}'
213           refspec: ''  # Leave blank!! A later script will handle fetching
214           submodule-recursive: '{submodule-recursive}'
215           choosing-strategy: default
216
217     triggers:
218       - gerrit:
219           server-name: '{gerrit-server-name}'
220           trigger-on: '{obj:gerrit_verify_triggers}'
221           projects:
222             - project-compare-type: 'ANT'
223               project-pattern: '{project-pattern}'
224               branches:
225                 - branch-compare-type: 'ANT'
226                   branch-pattern: '**/{branch}'
227               file-paths: '{obj:gerrit_trigger_file_paths}'
228
229 - job-template:
230     name: '{project-name}-rtd-verify-{stream}'
231     id: github-rtd-verify
232     concurrent: true
233     <<: *lf_rtd_common
234     # yamllint disable-line rule:key-duplicates
235     <<: *lf_rtd_verify
236
237     properties:
238       - lf-infra-properties:
239           build-days-to-keep: '{build-days-to-keep}'
240       - github:
241           url: '{github-url}/{github-org}/{project}'
242
243     scm:
244       - lf-infra-github-scm:
245           url: '{git-clone-url}{github-org}/{project}'
246           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
247           branch: '$sha1'
248           submodule-recursive: '{submodule-recursive}'
249           choosing-strategy: default
250           jenkins-ssh-credential: '{jenkins-ssh-credential}'
251
252     triggers:
253       - github-pull-request:
254           trigger-phrase: '^(recheck|reverify)$'
255           only-trigger-phrase: false
256           status-context: 'RTD Verify'
257           permit-all: true
258           github-hooks: true
259           included-regions: '{obj:github_included_regions}'
260           white-list-target-branches:
261             - '{branch}'