Fix rtd merge job to handle new tag uploaded
[releng/global-jjb.git] / jjb / lf-release-jobs.yaml
1 # SPDX-License-Identifier: Apache-2.0
2 ##############################################################################
3 # Copyright (c) 2019 The Linux Foundation and others.
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9 ---
10 ####################
11 # COMMON FUNCTIONS #
12 ####################
13
14 - lf_release_common: &lf_release_common
15     name: lf-release-common
16
17     #####################
18     # Job Configuration #
19     #####################
20
21     project-type: freestyle
22     node: "{build-node}"
23
24     properties:
25       - lf-infra-properties:
26           build-days-to-keep: 7
27
28     publishers:
29       - lf-infra-publish
30
31 ##################
32 # RELEASE VERIFY #
33 ##################
34
35 - lf_release_verify: &lf_release_verify
36     name: lf-release-verify
37
38     ######################
39     # Default parameters #
40     ######################
41
42     build-days-to-keep: 7
43     build-timeout: 15
44     disable-job: false
45     git-url: "$GIT_URL/$PROJECT"
46     gerrit-skip-vote: false
47     use-release-file: true
48
49     gerrit_verify_triggers:
50       - patchset-created-event:
51           exclude-drafts: true
52           exclude-trivial-rebase: false
53           exclude-no-code-change: false
54       - draft-published-event
55       - comment-added-contains-event:
56           comment-contains-value: "^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$"
57
58     #####################
59     # Job Configuration #
60     #####################
61
62     disabled: "{disable-job}"
63
64     parameters:
65       - lf-infra-parameters:
66           project: "{project}"
67           branch: "$GERRIT_BRANCH"
68           stream: "$GERRIT_BRANCH"
69       - lf-build-with-parameters-maven-release:
70           use-release-file: "{use-release-file}"
71
72     builders:
73       - lf-infra-pre-build
74       - conditional-step:
75           condition-kind: regex-match
76           regex: "^.*-docker-.*"
77           label: "{build-node}"
78           steps:
79             - lf-provide-maven-settings:
80                 global-settings-file: "global-settings"
81                 settings-file: "{mvn-settings}"
82             - shell: !include-raw-escape: ../shell/docker-login.sh
83             - lf-provide-maven-settings-cleanup
84       - config-file-provider:
85           files:
86             - file-id: sigul-config
87               variable: SIGUL_CONFIG
88             - file-id: sigul-password
89               variable: SIGUL_PASSWORD
90             - file-id: sigul-pki
91               variable: SIGUL_PKI
92             - file-id: signing-pubkey
93               variable: SIGNING_PUBKEY
94       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
95       - shell: !include-raw-escape: ../shell/sigul-install.sh
96       - lf-release
97
98 - job-template:
99     name: "{project-name}-release-verify"
100     id: gerrit-release-verify
101     <<: *lf_release_common
102     # yamllint disable-line rule:key-duplicates
103     <<: *lf_release_verify
104
105     wrappers:
106       - lf-infra-wrappers:
107           build-timeout: "{build-timeout}"
108           jenkins-ssh-credential: "{jenkins-ssh-credential}"
109
110     scm:
111       - lf-infra-gerrit-scm:
112           git-url: "{git-url}"
113           refspec: "$GERRIT_REFSPEC"
114           branch: "$GERRIT_BRANCH"
115           submodule-disable: true
116           submodule-recursive: false
117           submodule-timeout: 10
118           choosing-strategy: gerrit
119           jenkins-ssh-credential: "{jenkins-ssh-credential}"
120
121     triggers:
122       - gerrit:
123           server-name: "{gerrit-server-name}"
124           trigger-on: "{obj:gerrit_verify_triggers}"
125           projects:
126             - project-compare-type: "ANT"
127               project-pattern: "{project}"
128               branches:
129                 - branch-compare-type: "ANT"
130                   branch-pattern: "**"
131               file-paths:
132                 - compare-type: REG_EXP
133                   pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
134           skip-vote:
135             successful: "{gerrit-skip-vote}"
136             failed: "{gerrit-skip-vote}"
137             unstable: "{gerrit-skip-vote}"
138             notbuilt: "{gerrit-skip-vote}"
139
140 #################
141 # RELEASE MERGE #
142 #################
143
144 - lf_release_merge: &lf_release_merge
145     name: lf-release-merge
146
147     ######################
148     # Default parameters #
149     ######################
150
151     build-days-to-keep: 7
152     build-timeout: 15
153     disable-job: false
154     git-url: "$GIT_URL/$PROJECT"
155     use-release-file: true
156
157     gerrit_merge_triggers:
158       - change-merged-event
159       - comment-added-contains-event:
160           comment-contains-value: remerge$
161
162     #####################
163     # Job Configuration #
164     #####################
165
166     disabled: "{disable-job}"
167
168     parameters:
169       - lf-infra-parameters:
170           project: "{project}"
171           branch: "$GERRIT_BRANCH"
172           stream: "$GERRIT_BRANCH"
173       - lf-build-with-parameters-maven-release:
174           use-release-file: "{use-release-file}"
175       - bool:
176           name: DRY_RUN
177           default: false
178           description: |
179             If DRY_RUN is enabled artifacts are not published.
180
181     builders:
182       - lf-infra-pre-build
183       - conditional-step:
184           condition-kind: regex-match
185           regex: "^.*-docker-.*"
186           label: "{build-node}"
187           steps:
188             - lf-provide-maven-settings:
189                 global-settings-file: "global-settings"
190                 settings-file: "{mvn-settings}"
191             - shell: !include-raw-escape: ../shell/docker-login.sh
192             - lf-provide-maven-settings-cleanup
193       - config-file-provider:
194           files:
195             - file-id: sigul-config
196               variable: SIGUL_CONFIG
197             - file-id: sigul-password
198               variable: SIGUL_PASSWORD
199             - file-id: sigul-pki
200               variable: SIGUL_PKI
201             - file-id: signing-pubkey
202               variable: SIGNING_PUBKEY
203       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
204       - shell: !include-raw-escape: ../shell/sigul-install.sh
205       - lf-release
206
207 - job-template:
208     name: "{project-name}-release-merge"
209     id: gerrit-release-merge
210     <<: *lf_release_common
211     # yamllint disable-line rule:key-duplicates
212     <<: *lf_release_merge
213
214     wrappers:
215       - lf-infra-wrappers:
216           build-timeout: "{build-timeout}"
217           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
218
219     scm:
220       - lf-infra-gerrit-scm:
221           jenkins-ssh-credential: "{jenkins-ssh-credential}"
222           git-url: "{git-url}"
223           refspec: "$GERRIT_REFSPEC"
224           branch: "$GERRIT_BRANCH"
225           submodule-disable: true
226           submodule-recursive: false
227           submodule-timeout: 10
228           choosing-strategy: default
229
230     triggers:
231       - gerrit:
232           server-name: "{gerrit-server-name}"
233           trigger-on: "{obj:gerrit_merge_triggers}"
234           projects:
235             - project-compare-type: "ANT"
236               project-pattern: "{project}"
237               branches:
238                 - branch-compare-type: "ANT"
239                   branch-pattern: "**"
240               file-paths:
241                 - compare-type: REG_EXP
242                   pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'