Merge "Use release credentials only for merge job wrappers"
[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     # Default parameters #
19     ######################
20
21     gerrit_trigger_file_paths:
22       - compare-type: ANT
23         pattern: "releases/*.yaml"
24
25     #####################
26     # Job Configuration #
27     #####################
28
29     project-type: freestyle
30     node: "{build-node}"
31
32     properties:
33       - lf-infra-properties:
34           build-days-to-keep: 7
35
36     parameters:
37       - lf-infra-parameters:
38           project: "{project}"
39           branch: "$GERRIT_BRANCH"
40           stream: "$GERRIT_BRANCH"
41
42     publishers:
43       - lf-infra-publish
44
45 ##################
46 # RELEASE VERIFY #
47 ##################
48
49 - lf_release_verify: &lf_release_verify
50     name: lf-release-verify
51
52     ######################
53     # Default parameters #
54     ######################
55
56     build-days-to-keep: 7
57     build-timeout: 15
58     disable-job: false
59     git-url: "$GIT_URL/$PROJECT"
60     gerrit-skip-vote: false
61
62     gerrit_verify_triggers:
63       - patchset-created-event:
64           exclude-drafts: true
65           exclude-trivial-rebase: false
66           exclude-no-code-change: false
67       - draft-published-event
68       - comment-added-contains-event:
69           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
70
71     #####################
72     # Job Configuration #
73     #####################
74
75     disabled: "{disable-job}"
76
77     builders:
78       - lf-infra-pre-build
79       - config-file-provider:
80           files:
81             - file-id: sigul-config
82               variable: SIGUL_CONFIG
83             - file-id: sigul-password
84               variable: SIGUL_PASSWORD
85             - file-id: sigul-pki
86               variable: SIGUL_PKI
87             - file-id: signing-pubkey
88               variable: SIGNING_PUBKEY
89       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
90       - shell: !include-raw-escape: ../shell/sigul-install.sh
91       - lf-release
92
93 - job-template:
94     name: "{project-name}-release-verify"
95     id: gerrit-release-verify
96     <<: *lf_release_common
97     # yamllint disable-line rule:key-duplicates
98     <<: *lf_release_verify
99
100     wrappers:
101       - lf-infra-wrappers:
102           build-timeout: "{build-timeout}"
103           jenkins-ssh-credential: "{jenkins-ssh-credential}"
104
105     scm:
106       - lf-infra-gerrit-scm:
107           git-url: "{git-url}"
108           refspec: "$GERRIT_REFSPEC"
109           branch: "$GERRIT_BRANCH"
110           submodule-disable: true
111           submodule-recursive: false
112           submodule-timeout: 10
113           choosing-strategy: gerrit
114           jenkins-ssh-credential: "{jenkins-ssh-credential}"
115
116     triggers:
117       - gerrit:
118           server-name: "{gerrit-server-name}"
119           trigger-on: "{obj:gerrit_verify_triggers}"
120           projects:
121             - project-compare-type: "ANT"
122               project-pattern: "{project}"
123               branches:
124                 - branch-compare-type: "ANT"
125                   branch-pattern: "**"
126               file-paths: "{obj:gerrit_trigger_file_paths}"
127           skip-vote:
128             successful: "{gerrit-skip-vote}"
129             failed: "{gerrit-skip-vote}"
130             unstable: "{gerrit-skip-vote}"
131             notbuilt: "{gerrit-skip-vote}"
132
133 #################
134 # RELEASE MERGE #
135 #################
136
137 - lf_release_merge: &lf_release_merge
138     name: lf-release-merge
139
140     ######################
141     # Default parameters #
142     ######################
143
144     build-days-to-keep: 7
145     build-timeout: 15
146     disable-job: false
147     git-url: "$GIT_URL/$PROJECT"
148
149     gerrit_merge_triggers:
150       - change-merged-event
151       - comment-added-contains-event:
152           comment-contains-value: remerge$
153
154     #####################
155     # Job Configuration #
156     #####################
157
158     disabled: "{disable-job}"
159
160     builders:
161       - lf-infra-pre-build
162       - config-file-provider:
163           files:
164             - file-id: sigul-config
165               variable: SIGUL_CONFIG
166             - file-id: sigul-password
167               variable: SIGUL_PASSWORD
168             - file-id: sigul-pki
169               variable: SIGUL_PKI
170             - file-id: signing-pubkey
171               variable: SIGNING_PUBKEY
172       - shell: !include-raw-escape: ../shell/sigul-configuration.sh
173       - shell: !include-raw-escape: ../shell/sigul-install.sh
174       - lf-release
175
176 - job-template:
177     name: "{project-name}-release-merge"
178     id: gerrit-release-merge
179     <<: *lf_release_common
180     # yamllint disable-line rule:key-duplicates
181     <<: *lf_release_merge
182
183     wrappers:
184       - lf-infra-wrappers:
185           build-timeout: "{build-timeout}"
186           jenkins-ssh-credential: "{jenkins-ssh-release-credential}"
187
188     scm:
189       - lf-infra-gerrit-scm:
190           jenkins-ssh-credential: "{jenkins-ssh-credential}"
191           git-url: "{git-url}"
192           refspec: "$GERRIT_REFSPEC"
193           branch: "$GERRIT_BRANCH"
194           submodule-disable: true
195           submodule-recursive: false
196           submodule-timeout: 10
197           choosing-strategy: default
198
199     triggers:
200       - gerrit:
201           server-name: "{gerrit-server-name}"
202           trigger-on: "{obj:gerrit_merge_triggers}"
203           projects:
204             - project-compare-type: "ANT"
205               project-pattern: "{project}"
206               branches:
207                 - branch-compare-type: "ANT"
208                   branch-pattern: "**"
209               file-paths: "{obj:gerrit_trigger_file_paths}"