5afaaf723ccd86378c769300e1b9ff71c3faed4b
[releng.git] / jjb / yardstick / yardstick.yml
1 - project:
2     name: yardstick
3
4     project: 'yardstick'
5
6     pod:
7         - lf:
8             node: 'opnfv-jump-2'
9             installer_type: 'fuel'
10             installer_ip: '10.20.0.2'
11         - ericsson:
12             node: 'yardstick-pod'
13             installer_type: 'fuel'
14             installer_ip: '10.20.0.2'
15
16     installer:
17         - fuel
18
19     jobs:
20         - 'yardstick-{installer}-{pod}-{stream}'
21         - 'yardstick-merge'
22         - 'yardstick-verify'
23
24     # stream:    branch with - in place of / (eg. stable-helium)
25     # branch:    branch (eg. stable/helium)
26     stream:
27         - master:
28             branch: 'master'
29
30 - job-template:
31     name: 'yardstick-verify'
32
33     project-type: freestyle
34
35     node: ericsson-build
36
37     logrotate:
38         daysToKeep: 30
39         numToKeep: 10
40         artifactDaysToKeep: -1
41         artifactNumToKeep: -1
42
43     parameters:
44         - project-parameter:
45             project: '{project}'
46         - gerrit-parameter:
47             branch: 'master'
48         - string:
49             name: GIT_BASE
50             default: https://gerrit.opnfv.org/gerrit/$PROJECT
51             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
52
53     scm:
54         - gerrit-trigger-scm:
55             credentials-id: '{ssh-credentials}'
56             refspec: '$GERRIT_REFSPEC'
57             choosing-strategy: 'gerrit'
58
59     triggers:
60         - gerrit:
61             trigger-on:
62                 - patchset-created-event:
63                     exclude-drafts: 'false'
64                     exclude-trivial-rebase: 'false'
65                     exclude-no-code-change: 'false'
66                 - draft-published-event
67                 - comment-added-contains-event:
68                     comment-contains-value: 'recheck'
69                 - comment-added-contains-event:
70                     comment-contains-value: 'reverify'
71             projects:
72               - project-compare-type: 'ANT'
73                 project-pattern: 'yardstick'
74                 branches:
75                   - branch-compare-type: 'ANT'
76                     branch-pattern: '**/master'
77
78     builders:
79         - shell: |
80             #!/bin/bash
81             set -o errexit
82             set -o pipefail
83
84             echo "Running unit tests..."
85             cd $WORKSPACE
86             virtualenv $WORKSPACE/yardstick_venv
87             source $WORKSPACE/yardstick_venv/bin/activate
88             easy_install -U setuptools
89             python setup.py develop
90             ./run_tests.sh
91             deactivate
92
93 - job-template:
94     name: 'yardstick-merge'
95
96     # builder-merge job to run JJB update
97     #
98     # This job's purpose is to update all the JJB
99
100     project-type: freestyle
101
102     node: ericsson-build
103
104     logrotate:
105         daysToKeep: 30
106         numToKeep: 40
107         artifactDaysToKeep: -1
108         artifactNumToKeep: 5
109
110     parameters:
111         - project-parameter:
112             project: '{project}'
113         - gerrit-parameter:
114             branch: 'master'
115         - string:
116             name: GIT_BASE
117             default: https://gerrit.opnfv.org/gerrit/$PROJECT
118             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
119
120     scm:
121         - gerrit-trigger-scm:
122             credentials-id: '{ssh-credentials}'
123             refspec: ''
124             choosing-strategy: 'default'
125
126     triggers:
127         - gerrit:
128             trigger-on:
129                 - change-merged-event
130                 - comment-added-contains-event:
131                     comment-contains-value: 'remerge'
132             projects:
133               - project-compare-type: 'ANT'
134                 project-pattern: 'yardstick'
135                 branches:
136                     - branch-compare-type: 'ANT'
137                       branch-pattern: '**/master'
138
139     builders:
140         - shell: |
141             #!/bin/bash
142             set -o errexit
143             set -o pipefail
144
145             echo "Running unit tests..."
146             cd $WORKSPACE
147             virtualenv $WORKSPACE/yardstick_venv
148             source $WORKSPACE/yardstick_venv/bin/activate
149             easy_install -U setuptools
150             python setup.py develop
151             ./run_tests.sh
152             deactivate
153
154 - job-template:
155     name: 'yardstick-{installer}-{pod}-{stream}'
156
157     project-type: freestyle
158
159     disabled: false
160
161     node: '{node}'
162
163     parameters:
164         - project-parameter:
165             project: '{project}'
166         - '{pod}-parameters'
167         - string:
168             name: POD_NAME
169             default: '{pod}'
170             description: "POD where the job runs"
171         - string:
172             name: INSTALLER_TYPE
173             default: '{installer_type}'
174             description: "Installer name that is used for deployment."
175         - string:
176             name: INSTALLER_IP
177             default: '{installer_ip}'
178             description: "Installer IP."
179
180     scm:
181         - git-scm:
182             credentials-id: '{ssh-credentials}'
183             refspec: ''
184             branch: master
185
186     logrotate:
187         daysToKeep: 30
188         numToKeep: 10
189         artifactDaysToKeep: -1
190         artifactNumToKeep: -1
191
192     triggers:
193         - 'yardstick-trigger-{pod}'
194
195     builders:
196         - 'yardstick-fetch-os-creds'
197         - 'yardstick-daily'
198
199     publishers:
200         - email:
201             recipients: ana.cunha@ericsson.com jorgen.w.karlsson@ericsson.com
202
203 ########################
204 # builder macros
205 ########################
206 - builder:
207     name: yardstick-daily
208     builders:
209         - shell: |
210             #!/bin/bash
211             set -o errexit
212
213             echo "Yardstick: Run benchmark test suites ..."
214
215             # Remove old containers
216             docker ps | grep opnfv/yardstick-ci |\
217                 awk '{print $1}' | xargs -r docker stop &>/dev/null
218             docker ps -a | grep opnfv/yardstick-ci |\
219                 awk '{print $1}' | xargs -r  docker rm &>/dev/null
220
221             # Make sure we have latest image
222             docker pull opnfv/yardstick-ci
223
224             docker run \
225                --privileged=true \
226                 --rm \
227                 -t \
228                 -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
229                 -e "INSTALLER_IP=${INSTALLER_IP}" \
230                 opnfv/yardstick-ci \
231                 run_benchmarks
232
233             echo "Yardstick: done!"
234
235 - builder:
236     name: yardstick-fetch-os-creds
237     builders:
238         - shell:
239             !include-raw ../../utils/fetch_os_creds.sh
240
241 ########################
242 # parameter macros
243 ########################
244 - parameter:
245     name: 'ericsson-parameters'
246     parameters:
247         - string:
248             name: GIT_BASE
249             default: https://gerrit.opnfv.org/gerrit/$PROJECT
250             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
251
252 - parameter:
253     name: 'lf-parameters'
254     parameters:
255         - string:
256             name: GIT_BASE
257             default: ssh://gerrit.opnfv.org:29418/$PROJECT
258             description: "URL for LF POD"
259
260 ########################
261 # trigger macros
262 ########################
263 - trigger:
264     name: 'yardstick-trigger-ericsson'
265     triggers:
266         - timed: '@midnight'
267
268 - trigger:
269     name: 'yardstick-trigger-lf'
270     triggers:
271         - timed: '#@midnight'