aefc214ccfef2214a7584f495b48cf720b027dd0
[releng.git] / jjb / functest / functest-daily-jobs.yaml
1 ---
2 ###################################
3 # job configuration for functest
4 ###################################
5 - project:
6     name: functest-daily
7
8     project: functest
9
10     # -------------------------------
11     # BRANCH ANCHORS
12     # -------------------------------
13     master: &master
14       stream: master
15       branch: '{stream}'
16       gs-pathname: ''
17     gambia: &gambia
18       stream: gambia
19       branch: 'stable/{stream}'
20       gs-pathname: '/{stream}'
21     hunter: &hunter
22       stream: hunter
23       branch: 'stable/{stream}'
24       gs-pathname: '/{stream}'
25     # -------------------------------
26     # POD, INSTALLER, AND BRANCH MAPPING
27     # -------------------------------
28     #    Installers using labels
29     #            CI PODs
30     # This section should only contain the installers
31     # that have been switched using labels for slaves
32     # -------------------------------
33     pod:
34       # fuel CI PODs
35       - baremetal:
36           slave-label: fuel-baremetal
37           installer: fuel
38           <<: *master
39       - virtual:
40           slave-label: fuel-virtual
41           installer: fuel
42           <<: *master
43       - baremetal:
44           slave-label: fuel-baremetal
45           installer: fuel
46           <<: *hunter
47       - virtual:
48           slave-label: fuel-virtual
49           installer: fuel
50           <<: *hunter
51       # compass CI PODs
52       - baremetal:
53           slave-label: compass-baremetal
54           installer: compass
55           <<: *gambia
56       - virtual:
57           slave-label: compass-virtual
58           installer: compass
59           <<: *gambia
60       # apex CI PODs
61       - virtual:
62           slave-label: apex-virtual-master
63           installer: apex
64           <<: *master
65       - baremetal:
66           slave-label: apex-baremetal-master
67           installer: apex
68           <<: *master
69       - virtual:
70           slave-label: apex-virtual-master
71           installer: apex
72           <<: *hunter
73       - baremetal:
74           slave-label: apex-baremetal-master
75           installer: apex
76           <<: *hunter
77       - virtual:
78           slave-label: apex-virtual-master
79           installer: apex
80           <<: *gambia
81       - baremetal:
82           slave-label: apex-baremetal-master
83           installer: apex
84           <<: *gambia
85       # armband CI PODs
86       - armband-baremetal:
87           slave-label: armband-baremetal
88           installer: fuel
89           <<: *master
90       - armband-baremetal:
91           slave-label: armband-baremetal
92           installer: fuel
93           <<: *hunter
94       # fuel NONE CI PODs
95       - zte-pod1:
96           slave-label: fuel-baremetal
97           installer: fuel
98           <<: *master
99       - itri-pod1:
100           slave-label: fuel-baremetal
101           installer: fuel
102           <<: *master
103
104     testsuite:
105       - 'suite':
106           job-timeout: 60
107       - 'daily':
108           job-timeout: 600
109
110     jobs:
111       - 'functest-{installer}-{pod}-{testsuite}-{stream}'
112
113 ################################
114 # job template
115 ################################
116 - job-template:
117     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
118
119     concurrent: true
120
121     properties:
122       - logrotate-default
123       - throttle:
124           enabled: true
125           max-per-node: 1
126           max-total: 10
127           option: 'project'
128
129     wrappers:
130       - build-name:
131           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
132       - timeout:
133           timeout: '{job-timeout}'
134           abort: true
135
136     parameters:
137       - project-parameter:
138           project: '{project}'
139           branch: '{branch}'
140       - '{installer}-defaults'
141       - '{slave-label}-defaults'
142       - 'functest-{testsuite}-parameter'
143       - string:
144           name: DEPLOY_SCENARIO
145           default: 'os-nosdn-nofeature-noha'
146       - string:
147           name: DOCKER_TAG
148           default: ''
149       - string:
150           name: CLEAN_DOCKER_IMAGES
151           default: 'false'
152           description: 'Remove downloaded docker images (opnfv/functest*:*)'
153       - functest-parameter:
154           gs-pathname: '{gs-pathname}'
155
156     scm:
157       - git-scm
158
159     builders:
160       - description-setter:
161           description: "Built on $NODE_NAME"
162       - 'functest-{testsuite}-builder'
163
164
165 ########################
166 # parameter macros
167 ########################
168 - parameter:
169     name: functest-daily-parameter
170     parameters:
171       - string:
172           name: FUNCTEST_MODE
173           default: 'daily'
174           description: "Daily suite name to run"
175
176 - parameter:
177     name: functest-suite-parameter
178     parameters:
179       - choice:
180           name: FUNCTEST_MODE
181           choices:
182             - 'tier'
183             - 'testcase'
184           default: 'tier'
185           description: "Test case or Tier to be run"
186       - choice:
187           name: FUNCTEST_SUITE_NAME
188           choices:
189             - 'connection_check'
190             - 'api_check'
191             - 'snaps_health_check'
192             - 'vping_ssh'
193             - 'vping_userdata'
194             - 'cinder_test'
195             - 'tempest_smoke'
196             - 'rally_sanity'
197             - 'refstack_defcore'
198             - 'patrole'
199             - 'odl'
200             - 'snaps_smoke'
201             - 'shaker'
202             - 'vmtp'
203             - 'neutron_trunk'
204             - 'doctor-notification'
205             - 'bgpvpn'
206             - 'functest-odl-sfc'
207             - 'barometercollectd'
208             - 'fds'
209             - 'tempest_full'
210             - 'rally_full'
211             - 'cloudify_ims'
212             - 'vyos_vrouter'
213             - 'juju_epc'
214             - 'parser'
215           default: 'connection_check'
216       - choice:
217           name: FUNCTEST_TIER
218           choices:
219             - 'healthcheck'
220             - 'smoke'
221             - 'benchmarking'
222             - 'features'
223             - 'components'
224             - 'vnf'
225             - 'parser'
226           default: 'healthcheck'
227       - string:
228           name: TESTCASE_OPTIONS
229           default: ''
230           description: 'Additional parameters specific to test case(s)'
231
232 - parameter:
233     name: functest-parameter
234     parameters:
235       - string:
236           name: GS_PATHNAME
237           default: '{gs-pathname}'
238           description: "Version directory where the opnfv documents will be stored in gs repository"
239       - string:
240           name: FUNCTEST_REPO_DIR
241           default: "/home/opnfv/repos/functest"
242           description: "Directory where the Functest repository is cloned"
243       - string:
244           name: PUSH_RESULTS_TO_DB
245           default: "true"
246           description: "Push the results of all the tests to the resultDB"
247       - string:
248           name: CI_DEBUG
249           default: 'false'
250           description: "Show debug output information"
251       - string:
252           name: RC_FILE_PATH
253           default: ''
254           description: "Path to the OS credentials file if given"
255       - string:
256           name: REPO
257           default: "opnfv"
258           description: "Repository name for functest images"
259 ########################
260 # trigger macros
261 ########################
262 - trigger:
263     name: 'functest-master'
264     triggers:
265       - pollscm:
266           cron: "H 9 * * *"
267 ########################
268 # builder macros
269 ########################
270 - builder:
271     name: functest-daily-builder
272     builders:
273       - 'functest-cleanup'
274       - 'functest-daily'
275       - 'functest-store-results'
276       - 'functest-exit'
277
278 - builder:
279     name: functest-suite-builder
280     builders:
281       - 'functest-cleanup'
282       - 'functest-daily'
283       - 'functest-store-results'
284       - 'functest-exit'
285
286 - builder:
287     name: functest-daily
288     builders:
289       # yamllint disable rule:indentation
290       - conditional-step:
291           condition-kind: regex-match
292           regex: "os-.*"
293           label: '$DEPLOY_SCENARIO'
294           steps:
295             - shell:
296                 !include-raw:
297                     - ./functest-env-presetup.sh
298                     - ../../utils/fetch_os_creds.sh
299                     - ./functest-alpine.sh
300       - conditional-step:
301           condition-kind: regex-match
302           regex: "k8-.*"
303           label: '$DEPLOY_SCENARIO'
304           steps:
305             - shell:
306                 !include-raw:
307                     - ../../utils/fetch_k8_conf.sh
308                     - ./functest-k8.sh
309
310 # yamllint enable rule:indentation
311 - builder:
312     name: functest-store-results
313     builders:
314       - shell:
315           !include-raw: ../../utils/push-test-logs.sh
316
317 - builder:
318     name: functest-cleanup
319     builders:
320       - shell:
321           !include-raw: ./functest-cleanup.sh
322
323 - builder:
324     name: functest-exit
325     builders:
326       - shell:
327           !include-raw: ./functest-exit.sh