Make sure that jjb-cleanup.sh allows unbound vars
[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-infra-pre-build
105       - lf-rtd-trigger-build:
106           rtd-build-url: '{rtd-build-url}'
107           rtd-token: '{rtd-token}'
108
109 - job-template:
110     name: '{project-name}-rtd-merge-{stream}'
111     id: gerrit-rtd-merge
112     <<: *lf_rtd_common
113     # yamllint disable-line rule:key-duplicates
114     <<: *lf_rtd_merge
115
116     triggers:
117       - gerrit:
118           server-name: '{gerrit-server-name}'
119           trigger-on: '{obj:gerrit_merge_triggers}'
120           projects:
121             - project-compare-type: 'ANT'
122               project-pattern: '{project-pattern}'
123               branches:
124                 - branch-compare-type: 'ANT'
125                   branch-pattern: '**/{branch}'
126               file-paths: '{obj:gerrit_trigger_file_paths}'
127
128 - job-template:
129     name: '{project-name}-rtd-merge-{stream}'
130     id: github-rtd-merge
131     <<: *lf_rtd_common
132     # yamllint disable-line rule:key-duplicates
133     <<: *lf_rtd_merge
134
135     properties:
136       - lf-infra-properties:
137           build-days-to-keep: '{build-days-to-keep}'
138       - github:
139           url: '{github-url}/{github-org}/{project}'
140
141     triggers:
142       - timed: 'H H * * *'
143       - github
144       - pollscm:
145           cron: ''
146       - github-pull-request:
147           trigger-phrase: '^remerge$'
148           only-trigger-phrase: true
149           status-context: 'RTD Merge'
150           permit-all: true
151           github-hooks: true
152           org-list:
153             - '{github-org}'
154           white-list: '{obj:github_pr_whitelist}'
155           admin-list: '{obj:github_pr_admin_list}'
156           included-regions: '{obj:github_included_regions}'
157           white-list-target-branches:
158             - '{branch}'
159
160 #############
161 # RTD VERIFY#
162 #############
163
164 - lf_rtd_verify: &lf_rtd_verify
165     name: lf-rtd-verify
166
167     ######################
168     # Default parameters #
169     ######################
170
171     branch: master
172     build-days-to-keep: 7
173     build-timeout: 15
174     disable-job: false
175     doc-dir: docs/_build/html
176     git-url: '$GIT_URL/$PROJECT'
177     github-url: 'https://github.com'
178     project-pattern: '**'
179     stream: master
180     submodule-recursive: true
181
182     gerrit_verify_triggers:
183       - patchset-created-event:
184           exclude-drafts: true
185           exclude-trivial-rebase: false
186           exclude-no-code-change: false
187       - draft-published-event
188       - comment-added-contains-event:
189           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
190
191     #####################
192     # Job Configuration #
193     #####################
194
195     disabled: '{disable-job}'
196
197     builders:
198       - lf-infra-pre-build
199       - lf-rtd-verify:
200           doc-dir: '{doc-dir}'
201
202 - job-template:
203     name: '{project-name}-rtd-verify-{stream}'
204     id: gerrit-rtd-verify
205     concurrent: true
206     <<: *lf_rtd_common
207     # yamllint disable-line rule:key-duplicates
208     <<: *lf_rtd_verify
209
210     scm:
211       - lf-infra-gerrit-scm:
212           branch: '$GERRIT_BRANCH'
213           jenkins-ssh-credential: '{jenkins-ssh-credential}'
214           git-url: '{git-url}'
215           refspec: ''  # Leave blank!! A later script will handle fetching
216           submodule-recursive: '{submodule-recursive}'
217           choosing-strategy: default
218
219     triggers:
220       - gerrit:
221           server-name: '{gerrit-server-name}'
222           trigger-on: '{obj:gerrit_verify_triggers}'
223           projects:
224             - project-compare-type: 'ANT'
225               project-pattern: '{project-pattern}'
226               branches:
227                 - branch-compare-type: 'ANT'
228                   branch-pattern: '**/{branch}'
229               file-paths: '{obj:gerrit_trigger_file_paths}'
230
231 - job-template:
232     name: '{project-name}-rtd-verify-{stream}'
233     id: github-rtd-verify
234     concurrent: true
235     <<: *lf_rtd_common
236     # yamllint disable-line rule:key-duplicates
237     <<: *lf_rtd_verify
238
239     properties:
240       - lf-infra-properties:
241           build-days-to-keep: '{build-days-to-keep}'
242       - github:
243           url: '{github-url}/{github-org}/{project}'
244
245     scm:
246       - lf-infra-github-scm:
247           url: '{git-clone-url}{github-org}/{project}'
248           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
249           branch: '$sha1'
250           submodule-recursive: '{submodule-recursive}'
251           choosing-strategy: default
252           jenkins-ssh-credential: '{jenkins-ssh-credential}'
253
254     triggers:
255       - github-pull-request:
256           trigger-phrase: '^(recheck|reverify)$'
257           only-trigger-phrase: false
258           status-context: 'RTD Verify'
259           permit-all: true
260           github-hooks: true
261           included-regions: '{obj:github_included_regions}'
262           white-list-target-branches:
263             - '{branch}'