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