Merge "Add new job for deploying kni on AWS"
[ci-management.git] / jjb / akraino-templates / akraino-jjb-kni.yaml
1 ---
2 #
3 # Copyright (c) 2019 Red Hat. All rights reserved.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may
6 # not use this file except in compliance with the License.
7 #
8 # You may obtain a copy of the License at
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17 - job-template:
18     id: kni-installer-build-installer
19     name: '{project-name}-build-installer'
20
21     ######################
22     # Default parameters #
23     ######################
24
25     build-node: centos7-builder-2c-1g
26     build-days-to-keep: 30
27     build-timeout: 60
28     submodule-recursive: true
29
30     #####################
31     # Job Configuration #
32     #####################
33
34     project-type: freestyle
35     node: '{build-node}'
36
37     properties:
38       - lf-infra-properties:
39           build-days-to-keep: '{build-days-to-keep}'
40
41     parameters:
42       - lf-infra-parameters:
43           project: '{project}'
44           branch: '{branch}'
45           stream: '{stream}'
46           lftools-version: '{lftools-version}'
47
48     wrappers:
49       - lf-infra-wrappers:
50           build-timeout: '{build-timeout}'
51           jenkins-ssh-credential: '{jenkins-ssh-credential}'
52
53     gerrit_merge_triggers:
54       - change-merged-event
55       - comment-added-contains-event:
56           comment-contains-value: remerge$
57
58     gerrit_trigger_file_paths:
59       - compare-type: ANT
60         pattern: '**'
61
62     scm:
63       - lf-infra-gerrit-scm:
64           jenkins-ssh-credential: '{jenkins-ssh-credential}'
65           git-url: '{git-url}/{project}.git'
66           refspec: '$GERRIT_REFSPEC'
67           branch: '$GERRIT_BRANCH'
68           submodule-recursive: '{submodule-recursive}'
69           submodule-timeout: '{submodule-timeout}'
70           choosing-strategy: default
71
72     triggers:
73       - gerrit:
74           server-name: '{gerrit-server-name}'
75           trigger-on: '{obj:gerrit_merge_triggers}'
76           projects:
77             - project-compare-type: ANT
78               project-pattern: '{project}'
79               branches:
80                 - branch-compare-type: ANT
81                   branch-pattern: '**/{branch}'
82               file-paths: '{obj:gerrit_trigger_file_paths}'
83
84     builders:
85       - lf-infra-pre-build
86       - shell: !include-raw-escape:
87           - ../shell/install_go.sh
88       - shell: !include-raw-escape:
89           - ../shell/build_kni_installer.sh
90
91     publishers:
92       - lf-infra-publish
93
94 - job-template:
95     id: kni-installer-build-binary
96     name: '{project-name}-build-binary'
97
98     ######################
99     # Default parameters #
100     ######################
101
102     build-days-to-keep: 30
103     build-timeout: 60
104     build-node: centos7-builder-8c-8g
105     submodule-recursive: true
106
107     #####################
108     # Job Configuration #
109     #####################
110
111     project-type: freestyle
112     node: '{build-node}'
113
114     properties:
115       - lf-infra-properties:
116           build-days-to-keep: '{build-days-to-keep}'
117
118     parameters:
119       - lf-infra-parameters:
120           project: '{project}'
121           branch: '{branch}'
122           stream: '{stream}'
123           lftools-version: '{lftools-version}'
124
125     wrappers:
126       - lf-infra-wrappers:
127           build-timeout: '{build-timeout}'
128           jenkins-ssh-credential: '{jenkins-ssh-credential}'
129
130     gerrit_merge_triggers:
131       - change-merged-event
132       - comment-added-contains-event:
133           comment-contains-value: remerge$
134
135     gerrit_trigger_file_paths:
136       - compare-type: REG_EXP
137         pattern: 'Makefile'
138       - compare-type: REG_EXP
139         pattern: 'cmd/binary.go'
140
141     scm:
142       - lf-infra-gerrit-scm:
143           jenkins-ssh-credential: '{jenkins-ssh-credential}'
144           git-url: '{git-url}/{project}.git'
145           refspec: '$GERRIT_REFSPEC'
146           branch: '$GERRIT_BRANCH'
147           submodule-recursive: '{submodule-recursive}'
148           submodule-timeout: '{submodule-timeout}'
149           choosing-strategy: default
150
151     triggers:
152       - gerrit:
153           server-name: '{gerrit-server-name}'
154           trigger-on:
155             - patchset-created-event:
156                 exclude-drafts: 'false'
157                 exclude-trivial-rebase: 'false'
158                 exclude-no-code-change: 'false'
159             - change-merged-event
160             - comment-added-contains-event:
161                 comment-contains-value: 'recheck'
162             - comment-added-contains-event:
163                 comment-contains-value: 'reverify'
164
165     builders:
166       - lf-infra-pre-build
167       - shell: !include-raw-escape:
168           - ../shell/install_go.sh
169       - shell: !include-raw-escape:
170           - ../shell/build_kni_binary.sh
171
172 - job-template:
173     id: kni-installer-merge-deploy-aws
174     name: '{project-name}-merge-deploy-aws'
175
176     ######################
177     # Default parameters #
178     ######################
179
180     archive-artifacts: >
181       **/*.log
182     build-days-to-keep: 30
183     build-timeout: 60
184     build-node: centos7-builder-8c-8g
185     submodule-recursive: true
186
187     #####################
188     # Job Configuration #
189     #####################
190
191     project-type: freestyle
192     node: '{build-node}'
193
194     properties:
195       - lf-infra-properties:
196           build-days-to-keep: '{build-days-to-keep}'
197
198     parameters:
199       - lf-infra-parameters:
200           project: '{project}'
201           branch: '{branch}'
202           stream: '{stream}'
203           lftools-version: '{lftools-version}'
204       - string:
205           name: ARCHIVE_ARTIFACTS
206           default: '{archive-artifacts}'
207           description: Artifacts to archive to the logs server.
208
209     wrappers:
210       - lf-infra-wrappers:
211           build-timeout: '{build-timeout}'
212           jenkins-ssh-credential: '{jenkins-ssh-credential}'
213       - credentials-binding:
214           - ssh-user-private-key:
215               credential-id: kni-secrets
216               key-file-variable: KNI_KEY_PATH
217
218     gerrit_trigger_file_paths:
219       - compare-type: REG_EXP
220         pattern: '.*'
221
222     gerrit_merge_triggers:
223       - change-merged-event
224       - comment-added-contains-event:
225           comment-contains-value: remerge$
226
227     scm:
228       - lf-infra-gerrit-scm:
229           jenkins-ssh-credential: '{jenkins-ssh-credential}'
230           git-url: '{git-url}/{project}.git'
231           refspec: '$GERRIT_REFSPEC'
232           branch: '$GERRIT_BRANCH'
233           submodule-recursive: '{submodule-recursive}'
234           submodule-timeout: '{submodule-timeout}'
235           choosing-strategy: default
236
237     triggers:
238       - gerrit:
239           server-name: '{gerrit-server-name}'
240           trigger-on: '{obj:gerrit_merge_triggers}'
241           projects:
242             - project-compare-type: ANT
243               project-pattern: '{project}'
244               branches:
245                 - branch-compare-type: ANT
246                   branch-pattern: '**/{branch}'
247               file-paths: '{obj:gerrit_trigger_file_paths}'
248
249     builders:
250       - lf-infra-pre-build
251       - config-file-provider:
252           files:
253             - file-id: kni-aws-access-key-id
254               target: akraino-secrets/aws-access-key-id
255             - file-id: kni-aws-secret-access-key
256               target: akraino-secrets/aws-secret-access-key
257             - file-id: kni-coreos-pull-secret
258               target: akraino-secrets/coreos-pull-secret
259             - file-id: kni-ssh-pub-key
260               target: akraino-secrets/ssh-pub-key
261       - shell: !include-raw-escape:
262           - ../shell/install_go.sh
263       - shell: !include-raw-escape:
264           - ../shell/kni_deploy_aws.sh
265
266     publishers:
267       - lf-infra-publish
268
269 - job-template:
270     id: kni-templates-verify-deploy-aws
271     name: '{project-name}-verify-deploy-aws'
272
273     ######################
274     # Default parameters #
275     ######################
276
277     build-days-to-keep: 30
278     build-timeout: 60
279     build-node: centos7-builder-8c-8g
280     submodule-recursive: true
281
282     #####################
283     # Job Configuration #
284     #####################
285
286     project-type: freestyle
287     node: '{build-node}'
288
289     properties:
290       - lf-infra-properties:
291           build-days-to-keep: '{build-days-to-keep}'
292
293     parameters:
294       - lf-infra-parameters:
295           project: '{project}'
296           branch: '{branch}'
297           stream: '{stream}'
298           lftools-version: '{lftools-version}'
299
300     wrappers:
301       - lf-infra-wrappers:
302           build-timeout: '{build-timeout}'
303           jenkins-ssh-credential: '{jenkins-ssh-credential}'
304       - credentials-binding:
305           - ssh-user-private-key:
306               credential-id: kni-secrets
307               key-file-variable: KNI_KEY_PATH
308
309     gerrit_trigger_file_paths:
310       - compare-type: REG_EXP
311         pattern: 'aws/*'
312
313     scm:
314       - lf-infra-gerrit-scm:
315           jenkins-ssh-credential: '{jenkins-ssh-credential}'
316           git-url: '{git-url}/kni/installer.git'
317           refspec: '$GERRIT_REFSPEC'
318           branch: '$GERRIT_BRANCH'
319           submodule-recursive: '{submodule-recursive}'
320           submodule-timeout: '{submodule-timeout}'
321           choosing-strategy: default
322
323     gerrit_verify_triggers:
324       - patchset-created-event:
325           exclude-drafts: true
326           exclude-trivial-rebase: false
327           exclude-no-code-change: false
328       - draft-published-event
329       - comment-added-contains-event:
330           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
331
332     triggers:
333       - gerrit:
334           server-name: '{gerrit-server-name}'
335           trigger-on: '{obj:gerrit_verify_triggers}'
336           projects:
337             - project-compare-type: ANT
338               project-pattern: '{project}'
339               branches:
340                 - branch-compare-type: ANT
341                   branch-pattern: '**/{branch}'
342               file-paths: '{obj:gerrit_trigger_file_paths}'
343
344     builders:
345       - lf-infra-pre-build
346       - config-file-provider:
347           files:
348             - file-id: kni-aws-access-key-id
349               target: akraino-secrets/aws-access-key-id
350             - file-id: kni-aws-secret-access-key
351               target: akraino-secrets/aws-secret-access-key
352             - file-id: kni-coreos-pull-secret
353               target: akraino-secrets/coreos-pull-secret
354             - file-id: kni-ssh-pub-key
355               target: akraino-secrets/ssh-pub-key
356       - shell: !include-raw-escape:
357           - ../shell/install_go.sh
358       - shell: !include-raw-escape:
359           - ../shell/kni_deploy_aws.sh