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