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