Add support for container releases
[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     parameters:
29       - lf-infra-parameters:
30           project: "{project}"
31           branch: "$GERRIT_BRANCH"
32           stream: "$GERRIT_BRANCH"
33       - lf-build-with-parameters-maven-release:
34           use-release-file: "{use-release-file}"
35
36     publishers:
37       - lf-infra-publish
38
39 ##################
40 # RELEASE VERIFY #
41 ##################
42
43 - lf_release_verify: &lf_release_verify
44     name: lf-release-verify
45
46     ######################
47     # Default parameters #
48     ######################
49
50     build-days-to-keep: 7
51     build-timeout: 15
52     disable-job: false
53     git-url: "$GIT_URL/$PROJECT"
54     gerrit-skip-vote: false
55     use-release-file: true
56
57     gerrit_verify_triggers:
58       - patchset-created-event:
59           exclude-drafts: true
60           exclude-trivial-rebase: false
61           exclude-no-code-change: false
62       - draft-published-event
63       - comment-added-contains-event:
64           comment-contains-value: "^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$"
65
66     #####################
67     # Job Configuration #
68     #####################
69
70     disabled: "{disable-job}"
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     builders:
169       - lf-infra-pre-build
170       - conditional-step:
171           condition-kind: regex-match
172           regex: "^.*-docker-.*"
173           label: "{build-node}"
174           steps:
175             - lf-provide-maven-settings:
176                 global-settings-file: "global-settings"
177                 settings-file: "{mvn-settings}"
178             - shell: !include-raw-escape: ../shell/docker-login.sh
179             - lf-provide-maven-settings-cleanup
180       - config-file-provider:
181           files:
182             - file-id: sigul-config
183               variable: SIGUL_CONFIG
184             - file-id: sigul-password
185               variable: SIGUL_PASSWORD
186             - file-id: sigul-pki
187               variable: SIGUL_PKI
188             - file-id: signing-pubkey
189               variable: SIGNING_PUBKEY
190       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
191       - shell: !include-raw-escape: ../shell/sigul-install.sh
192       - lf-release
193
194 - job-template:
195     name: "{project-name}-release-merge"
196     id: gerrit-release-merge
197     <<: *lf_release_common
198     # yamllint disable-line rule:key-duplicates
199     <<: *lf_release_merge
200
201     wrappers:
202       - lf-infra-wrappers:
203           build-timeout: "{build-timeout}"
204           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
205
206     scm:
207       - lf-infra-gerrit-scm:
208           jenkins-ssh-credential: "{jenkins-ssh-credential}"
209           git-url: "{git-url}"
210           refspec: "$GERRIT_REFSPEC"
211           branch: "$GERRIT_BRANCH"
212           submodule-disable: true
213           submodule-recursive: false
214           submodule-timeout: 10
215           choosing-strategy: default
216
217     triggers:
218       - gerrit:
219           server-name: "{gerrit-server-name}"
220           trigger-on: "{obj:gerrit_merge_triggers}"
221           projects:
222             - project-compare-type: "ANT"
223               project-pattern: "{project}"
224               branches:
225                 - branch-compare-type: "ANT"
226                   branch-pattern: "**"
227               file-paths:
228                 - compare-type: REG_EXP
229                   pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'