Add Project Option to Throttle Property
[releng.git] / jjb / functest / functest-ci-jobs.yml
1 ###################################
2 # job configuration for functest
3 ###################################
4 - project:
5     name: functest
6
7     project: '{name}'
8
9 #--------------------------------
10 # BRANCH ANCHORS
11 #--------------------------------
12     master: &master
13         stream: master
14         branch: '{stream}'
15         gs-pathname: ''
16         docker-tag: 'latest'
17     brahmaputra: &brahmaputra
18         stream: brahmaputra
19         branch: 'stable/{stream}'
20         gs-pathname: '/{stream}'
21         docker-tag: 'stable'
22 #--------------------------------
23 # POD, INSTALLER, AND BRANCH MAPPING
24 #--------------------------------
25 #    Installers using labels
26 #            CI PODs
27 # This section should only contain the installers
28 # that have been switched using labels for slaves
29 #--------------------------------
30     pod:
31 # fuel CI PODs
32         - baremetal:
33             slave-label: fuel-baremetal
34             installer: fuel
35             <<: *master
36         - virtual:
37             slave-label: fuel-virtual
38             installer: fuel
39             <<: *master
40         - baremetal:
41             slave-label: fuel-baremetal
42             installer: fuel
43             <<: *brahmaputra
44         - virtual:
45             slave-label: fuel-virtual
46             installer: fuel
47             <<: *brahmaputra
48
49 # just in case if things go wrong
50         - lf-pod2:
51             slave-label: fuel-baremetal
52             installer: fuel
53             <<: *master
54
55 # joid CI PODs
56         - baremetal:
57             slave-label: joid-baremetal
58             installer: joid
59             <<: *master
60         - virtual:
61             slave-label: joid-virtual
62             installer: joid
63             <<: *master
64         - baremetal:
65             slave-label: joid-baremetal
66             installer: joid
67             <<: *brahmaputra
68         - virtual:
69             slave-label: joid-virtual
70             installer: joid
71             <<: *brahmaputra
72 # compass CI PODs
73         - baremetal:
74             slave-label: compass-baremetal
75             installer: compass
76             <<: *master
77         - virtual:
78             slave-label: compass-virtual
79             installer: compass
80             <<: *master
81         - baremetal:
82             slave-label: compass-baremetal
83             installer: compass
84             <<: *brahmaputra
85         - virtual:
86             slave-label: compass-virtual
87             installer: compass
88             <<: *brahmaputra
89 # apex CI PODs
90         - apex-verify-master:
91             slave-label: '{pod}'
92             installer: apex
93             <<: *master
94         - apex-daily-master:
95             slave-label: '{pod}'
96             installer: apex
97             <<: *master
98 #--------------------------------
99 #        None-CI PODs
100 #--------------------------------
101         - orange-pod2:
102             slave-label: '{pod}'
103             installer: joid
104             <<: *brahmaputra
105         - orange-pod5:
106             slave-label: '{pod}'
107             installer: fuel
108             <<: *master
109         - orange-pod2:
110             slave-label: '{pod}'
111             installer: joid
112             <<: *master
113         - huawei-pod2:
114             slave-label: '{pod}'
115             installer: compass
116             <<: *master
117         - nokia-pod1:
118             slave-label: '{pod}'
119             installer: apex
120             <<: *master
121         - arm-pod1:
122             slave-label: '{pod}'
123             installer: fuel
124             <<: *master
125         - zte-pod1:
126             slave-label: '{pod}'
127             installer: fuel
128             <<: *master
129         - arm-pod1:
130             slave-label: '{pod}'
131             installer: fuel
132             <<: *brahmaputra
133 #--------------------------------
134
135     testsuite:
136         - 'daily'
137         - 'suite'
138
139     jobs:
140         - 'functest-{installer}-{pod}-{testsuite}-{stream}'
141
142 ################################
143 # job template
144 ################################
145 - job-template:
146     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
147
148     concurrent: true
149
150     properties:
151         - throttle:
152             enabled: true
153             max-per-node: 1
154             option: 'project'
155
156     wrappers:
157         - build-name:
158             name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
159         - timeout:
160             timeout: 400
161             abort: true
162
163     parameters:
164         - project-parameter:
165             project: '{project}'
166         - '{slave-label}-defaults'
167         - '{installer}-defaults'
168         - 'functest-{testsuite}-parameter'
169         - string:
170             name: DEPLOY_SCENARIO
171             default: 'os-odl_l2-nofeature-ha'
172         - string:
173             name: DOCKER_TAG
174             default: '{docker-tag}'
175             description: 'Tag to pull docker image'
176         - functest-parameter:
177             gs-pathname: '{gs-pathname}'
178
179     scm:
180         - git-scm:
181             credentials-id: '{ssh-credentials}'
182             refspec: ''
183             branch: '{branch}'
184
185     builders:
186         - 'functest-{testsuite}-builder'
187
188 ########################
189 # parameter macros
190 ########################
191 - parameter:
192     name: functest-daily-parameter
193     parameters:
194         - string:
195             name: FUNCTEST_SUITE_NAME
196             default: 'daily'
197             description: "Suite name to run"
198 - parameter:
199     name: functest-suite-parameter
200     parameters:
201         - choice:
202             name: FUNCTEST_SUITE_NAME
203             choices:
204                 - 'healthcheck'
205                 - 'tempest'
206                 - 'rally'
207                 - 'odl'
208                 - 'onos'
209                 - 'ovno'
210                 - 'promise'
211                 - 'doctor'
212                 - 'vims'
213                 - 'vping_userdata'
214                 - 'vping_ssh'
215 - parameter:
216     name: functest-parameter
217     parameters:
218         - string:
219             name: GS_PATHNAME
220             default: '{gs-pathname}'
221             description: "Version directory where the opnfv documents will be stored in gs repository"
222         - string:
223             name: FUNCTEST_REPO_DIR
224             default: "/home/opnfv/repos/functest"
225             description: "Directory where the Functest repository is cloned"
226         - string:
227             name: PUSH_RESULTS_TO_DB
228             default: "true"
229             description: "Push the results of all the tests to the resultDB"
230         - string:
231             name: CI_DEBUG
232             default: 'false'
233             description: "Show debug output information"
234 ########################
235 # trigger macros
236 ########################
237 - trigger:
238     name: 'functest-master'
239     triggers:
240         - pollscm:
241             cron: "H 9 * * *"
242 ########################
243 # builder macros
244 ########################
245 - builder:
246     name: functest-daily-builder
247     builders:
248         - 'functest-cleanup'
249         - 'set-functest-env'
250         - 'functest-daily'
251         - 'functest-store-results'
252
253 - builder:
254     name: functest-suite-builder
255     builders:
256         - 'functest-cleanup'
257         - 'set-functest-env'
258         - 'functest-suite'
259
260 - builder:
261     name: functest-suite
262     builders:
263         - shell:
264             !include-raw: ./functest-suite.sh
265
266 - builder:
267     name: functest-daily
268     builders:
269         - shell:
270             !include-raw: ./functest-daily.sh
271
272 - builder:
273     name: set-functest-env
274     builders:
275         - shell:
276             !include-raw: ./set-functest-env.sh
277
278 - builder:
279     name: functest-store-results
280     builders:
281         - shell:
282             !include-raw: ../../utils/push-test-logs.sh
283
284 - builder:
285     name: functest-cleanup
286     builders:
287         - shell:
288             !include-raw: ./functest-cleanup.sh