Allow Build with Params 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       - config-file-provider:
75           files:
76             - file-id: sigul-config
77               variable: SIGUL_CONFIG
78             - file-id: sigul-password
79               variable: SIGUL_PASSWORD
80             - file-id: sigul-pki
81               variable: SIGUL_PKI
82             - file-id: signing-pubkey
83               variable: SIGNING_PUBKEY
84       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
85       - shell: !include-raw-escape: ../shell/sigul-install.sh
86       - lf-release
87
88 - job-template:
89     name: "{project-name}-release-verify"
90     id: gerrit-release-verify
91     <<: *lf_release_common
92     # yamllint disable-line rule:key-duplicates
93     <<: *lf_release_verify
94
95     wrappers:
96       - lf-infra-wrappers:
97           build-timeout: "{build-timeout}"
98           jenkins-ssh-credential: "{jenkins-ssh-credential}"
99
100     scm:
101       - lf-infra-gerrit-scm:
102           git-url: "{git-url}"
103           refspec: "$GERRIT_REFSPEC"
104           branch: "$GERRIT_BRANCH"
105           submodule-disable: true
106           submodule-recursive: false
107           submodule-timeout: 10
108           choosing-strategy: gerrit
109           jenkins-ssh-credential: "{jenkins-ssh-credential}"
110
111     triggers:
112       - gerrit:
113           server-name: "{gerrit-server-name}"
114           trigger-on: "{obj:gerrit_verify_triggers}"
115           projects:
116             - project-compare-type: "ANT"
117               project-pattern: "{project}"
118               branches:
119                 - branch-compare-type: "ANT"
120                   branch-pattern: "**"
121               file-paths:
122                 - compare-type: ANT
123                   pattern: "releases/*.yaml"
124           skip-vote:
125             successful: "{gerrit-skip-vote}"
126             failed: "{gerrit-skip-vote}"
127             unstable: "{gerrit-skip-vote}"
128             notbuilt: "{gerrit-skip-vote}"
129
130 #################
131 # RELEASE MERGE #
132 #################
133
134 - lf_release_merge: &lf_release_merge
135     name: lf-release-merge
136
137     ######################
138     # Default parameters #
139     ######################
140
141     build-days-to-keep: 7
142     build-timeout: 15
143     disable-job: false
144     git-url: "$GIT_URL/$PROJECT"
145     use-release-file: true
146
147     gerrit_merge_triggers:
148       - change-merged-event
149       - comment-added-contains-event:
150           comment-contains-value: remerge$
151
152     #####################
153     # Job Configuration #
154     #####################
155
156     disabled: "{disable-job}"
157
158     builders:
159       - lf-infra-pre-build
160       - config-file-provider:
161           files:
162             - file-id: sigul-config
163               variable: SIGUL_CONFIG
164             - file-id: sigul-password
165               variable: SIGUL_PASSWORD
166             - file-id: sigul-pki
167               variable: SIGUL_PKI
168             - file-id: signing-pubkey
169               variable: SIGNING_PUBKEY
170       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
171       - shell: !include-raw-escape: ../shell/sigul-install.sh
172       - lf-release
173
174 - job-template:
175     name: "{project-name}-release-merge"
176     id: gerrit-release-merge
177     <<: *lf_release_common
178     # yamllint disable-line rule:key-duplicates
179     <<: *lf_release_merge
180
181     wrappers:
182       - lf-infra-wrappers:
183           build-timeout: "{build-timeout}"
184           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
185
186     scm:
187       - lf-infra-gerrit-scm:
188           jenkins-ssh-credential: "{jenkins-ssh-credential}"
189           git-url: "{git-url}"
190           refspec: "$GERRIT_REFSPEC"
191           branch: "$GERRIT_BRANCH"
192           submodule-disable: true
193           submodule-recursive: false
194           submodule-timeout: 10
195           choosing-strategy: default
196
197     triggers:
198       - gerrit:
199           server-name: "{gerrit-server-name}"
200           trigger-on: "{obj:gerrit_merge_triggers}"
201           projects:
202             - project-compare-type: "ANT"
203               project-pattern: "{project}"
204               branches:
205                 - branch-compare-type: "ANT"
206                   branch-pattern: "**"
207               file-paths:
208                 - compare-type: ANT
209                   pattern: "releases/*.yaml"