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