engine: Create job skeleton for release jobs
[infra/cicd.git] / jjb / engine / engine-periodic-jobs / engine-periodic-offline-deploy-test.yaml
1 ---
2 # ============LICENSE_START=======================================================
3 #  Copyright (C) 2019 Nordix Foundation.
4 # ================================================================================
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
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,
13 # WITHOUT 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 # SPDX-License-Identifier: Apache-2.0
18 # ============LICENSE_END=========================================================
19
20 - project:
21     name: 'engine-periodic-offline-deploy-test'
22
23     project: 'engine-periodic-offline-deploy-test'
24
25     stream:
26       - 'master':
27           branch: '{stream}'
28
29     distro:
30       - ubuntu1804
31
32     deploy-scenario:
33       - k8-calico-nofeature
34       - k8-multus-nofeature
35
36     type:
37       - baremetal:
38           pod-name: est-baremetal
39           provisioner-type: bifrost
40           installer-type: kubespray
41           slave-label: baremetal-deploy
42           yardstick-dispatcher: 'influxdb'
43
44     phase:
45       - deploy:
46           build-timeout: 90
47       - functest:
48           build-timeout: 240
49       - yardstick:
50           build-timeout: 120
51
52     jobs:
53       - '{deploy-scenario}-offline-{distro}-{type}-periodic'
54       - 'kubernetes-offline-{phase}-{distro}-{type}-periodic'
55
56 - job-template:
57     name: '{deploy-scenario}-offline-{distro}-{type}-periodic'
58
59     project-type: multijob
60
61     disabled: '{obj:disabled}'
62
63     concurrent: true
64
65     parameters:
66       - label:
67           name: SLAVE_LABEL
68           default: '{slave-label}'
69           description: 'Slave label to schedule this job on.'
70       - string:
71           name: PROVISIONER_TYPE
72           default: '{provisioner-type}'
73           description: 'Provisioner type to use'
74       - string:
75           name: INSTALLER_TYPE
76           default: '{installer-type}'
77           description: 'Installer type to use'
78       - string:
79           name: DEPLOY_SCENARIO
80           default: '{deploy-scenario}'
81           description: 'Scenario to deploy and test'
82       - string:
83           name: TEST_REPO_URL
84           default: 'https://gerrit.nordix.org/infra/test.git'
85           description: 'URL to clone the test repo from'
86       - string:
87           name: TEST_FW
88           default: 'functest'
89           description: 'Test framework to use'
90       - string:
91           name: TEST_SUITE
92           default: 'smoke'
93           description: 'Test suite to run'
94       - string:
95           name: YARDSTICK_DISPATCHER
96           default: '{yardstick-dispatcher}'
97           description: 'Dispatcher to use for Yardstick reporting'
98
99     properties:
100       - logrotate
101       - throttle:
102           max-per-node: 1
103           max-total: 3
104           option: project
105
106     wrappers:
107       - build-timeout:
108           timeout: 550
109       - mask-passwords
110       - fix-workspace-permissions
111
112     builders:
113       - description-setter:
114           description: $PROVISIONER_TYPE | $INSTALLER_TYPE | $DEPLOY_SCENARIO
115       - multijob:
116           name: "Offline Deployment on {type}"
117           condition: SUCCESSFUL
118           execution-type: PARALLEL
119           projects:
120             - name: 'kubernetes-offline-deploy-{distro}-{type}-periodic'
121               current-parameters: true
122               node-parameters: true
123               kill-phase-on: FAILURE
124               abort-all-job: true
125       - multijob:
126           name: functest
127           condition: ALWAYS
128           projects:
129             - name: 'kubernetes-offline-functest-{distro}-{type}-periodic'
130               current-parameters: true
131               node-parameters: true
132               kill-phase-on: FAILURE
133               abort-all-job: true
134       - multijob:
135           name: yardstick
136           condition: ALWAYS
137           projects:
138             - name: 'kubernetes-offline-yardstick-{distro}-{type}-periodic'
139               current-parameters: true
140               node-parameters: true
141               kill-phase-on: FAILURE
142               abort-all-job: true
143
144 - job-template:
145     name: 'kubernetes-offline-{phase}-{distro}-{type}-periodic'
146
147     disabled: '{obj:disabled}'
148
149     properties:
150       - logrotate
151       - throttle:
152           max-per-node: 1
153           max-total: 3
154           option: project
155
156     wrappers:
157       - build-timeout:
158           timeout: '{build-timeout}'
159       - mask-passwords
160       - fix-workspace-permissions
161
162     builders:
163       - shell: |
164           #!/bin/bash
165           env