Activate virtualenv in yardstick verify and merge jobs
[releng.git] / jjb / yardstick / yardstick.yml
1 - project:
2     name: yardstick
3     jobs:
4         - 'yardstick-{pod}'
5         - 'yardstick-daily-{stream}'
6         - 'yardstick-merge'
7         - 'yardstick-verify'
8
9     pod:
10         - opnfv-jump-1:
11             node: 'opnfv-jump-1'
12             installer_type: 'fuel'
13             installer_ip: '10.20.0.2'
14         - opnfv-jump-2:
15             node: 'opnfv-jump-2'
16             installer_type: 'foreman'
17             installer_ip: '172.30.10.73'
18
19     # stream:    branch with - in place of / (eg. stable-helium)
20     # branch:    branch (eg. stable/helium)
21     stream:
22         - master:
23             branch: 'master'
24
25     project: 'yardstick'
26     somevar: 'foo'
27
28 - job-template:
29     name: 'yardstick-daily-{stream}'
30
31     # Job template for daily builders
32     #
33     # Required Variables:
34     #     stream:    branch with - in place of / (eg. stable)
35     #     branch:    branch (eg. stable)
36
37     node: ericsson-build
38
39     project-type: freestyle
40     varsetabove: '{somevar}'
41
42     logrotate:
43         daysToKeep: '{build-days-to-keep}'
44         numToKeep: '{build-num-to-keep}'
45         artifactDaysToKeep: '{build-artifact-days-to-keep}'
46         artifactNumToKeep: '{build-artifact-num-to-keep}'
47
48     parameters:
49         - project-parameter:
50             project: '{project}'
51         - string:
52             name: GIT_BASE
53             default: https://gerrit.opnfv.org/gerrit/$PROJECT
54             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
55
56     scm:
57         - git-scm:
58             credentials-id: '{ssh-credentials}'
59             refspec: ''
60             branch: '{branch}'
61
62     wrappers:
63         - ssh-agent-credentials:
64             user: '{ssh-credentials}'
65
66     triggers:
67         - timed: 'H H * * *'
68
69     prebuilders:
70         - test-macro
71
72     builders:
73         - shell: |
74             pwd
75             find .
76             echo "Hello world from yardstick {somevar} daily"
77
78     postbuilders:
79         - test-macro
80
81 - job-template:
82     name: 'yardstick-verify'
83
84     project-type: freestyle
85
86     node: ericsson-build
87
88     logrotate:
89         daysToKeep: 30
90         numToKeep: 10
91         artifactDaysToKeep: -1
92         artifactNumToKeep: -1
93
94     parameters:
95         - project-parameter:
96             project: '{project}'
97         - gerrit-parameter:
98             branch: 'master'
99         - string:
100             name: GIT_BASE
101             default: https://gerrit.opnfv.org/gerrit/$PROJECT
102             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
103
104     scm:
105         - gerrit-trigger-scm:
106             credentials-id: '{ssh-credentials}'
107             refspec: '$GERRIT_REFSPEC'
108             choosing-strategy: 'gerrit'
109
110     wrappers:
111         - ssh-agent-credentials:
112             user: '{ssh-credentials}'
113
114     triggers:
115         - gerrit:
116             trigger-on:
117                 - patchset-created-event:
118                     exclude-drafts: 'false'
119                     exclude-trivial-rebase: 'false'
120                     exclude-no-code-change: 'false'
121                 - draft-published-event
122                 - comment-added-contains-event:
123                     comment-contains-value: 'recheck'
124                 - comment-added-contains-event:
125                     comment-contains-value: 'reverify'
126             projects:
127               - project-compare-type: 'ANT'
128                 project-pattern: 'yardstick'
129                 branches:
130                   - branch-compare-type: 'ANT'
131                     branch-pattern: '**/master'
132
133     builders:
134         - shell: |
135             echo "Running unit tests..."
136             cd $WORKSPACE
137             virtualenv $WORKSPACE/yardstick_venv
138             source $WORKSPACE/yardstick_venv/bin/activate
139             python setup.py develop > /dev/null 2>&1
140             ./run_tests.sh
141             deactivate
142
143 - job-template:
144     name: 'yardstick-merge'
145
146     # builder-merge job to run JJB update
147     #
148     # This job's purpose is to update all the JJB
149
150     project-type: freestyle
151
152     node: ericsson-build
153
154     logrotate:
155         daysToKeep: 30
156         numToKeep: 40
157         artifactDaysToKeep: -1
158         artifactNumToKeep: 5
159
160     parameters:
161         - project-parameter:
162             project: '{project}'
163         - gerrit-parameter:
164             branch: 'master'
165         - string:
166             name: GIT_BASE
167             default: https://gerrit.opnfv.org/gerrit/$PROJECT
168             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
169
170     scm:
171         - gerrit-trigger-scm:
172             credentials-id: '{ssh-credentials}'
173             refspec: ''
174             choosing-strategy: 'default'
175
176     wrappers:
177         - ssh-agent-credentials:
178             user: '{ssh-credentials}'
179
180     triggers:
181         - gerrit:
182             trigger-on:
183                 - change-merged-event
184                 - comment-added-contains-event:
185                     comment-contains-value: 'remerge'
186             projects:
187               - project-compare-type: 'ANT'
188                 project-pattern: 'yardstick'
189                 branches:
190                     - branch-compare-type: 'ANT'
191                       branch-pattern: '**/master'
192
193     builders:
194         - shell: |
195             echo "Running unit tests..."
196             cd $WORKSPACE
197             virtualenv $WORKSPACE/yardstick_venv
198             source $WORKSPACE/yardstick_venv/bin/activate
199             python setup.py develop > /dev/null 2>&1
200             ./run_tests.sh
201             deactivate
202
203 - job-template:
204     name: 'yardstick-{pod}'
205
206     project-type: freestyle
207
208     disabled: false
209
210     node: '{node}'
211
212     parameters:
213         - project-parameter:
214             project: '{project}'
215         - string:
216             name: INSTALLER_TYPE
217             default: '{installer_type}'
218             description: "Installer name that is used for deployment."
219         - string:
220             name: INSTALLER_IP
221             default: '{installer_ip}'
222             description: "Installer IP."
223
224     scm:
225         - git-scm:
226             credentials-id: '{ssh-credentials}'
227             refspec: ''
228             branch: master
229
230     logrotate:
231         daysToKeep: 30
232         numToKeep: 10
233         artifactDaysToKeep: -1
234         artifactNumToKeep: -1
235
236     builders:
237         - 'yardstick-fetch-os-creds'
238         - 'yardstick-ping'
239
240 ########################
241 # builder macros
242 ########################
243 - builder:
244     name: yardstick-ping
245     builders:
246         - shell: |
247             #!/bin/bash
248              set -o errexit
249              set -o pipefail
250
251             echo "Yardstick: prepare Yardstick environment"
252
253             # source openstack vars
254             if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
255                 echo "Unable to access file $HOME/opnfv-openrc.sh"
256                 exit 1
257             fi
258             source $HOME/opnfv-openrc.sh
259
260             # check if cirros-0.3.3 image is already available
261             # if not, create the image
262             echo "Yardstick: configure the image"
263             IMAGE_NAME=cirros-0.3.3
264             if [[ ! $(nova image-show $IMAGE_NAME > /dev/null 2>&1) ]]; then
265                 echo "Image $IMAGE_NAME doesn't exist. Creating image $IMAGE_NAME"
266                 glance image-create --name cirros-0.3.3 --is-public true --disk-format qcow2 --container-format bare --file $HOME/yardstick/cirros-0.3.3-x86_64-disk.img
267             else
268                 echo "Image $IMAGE_NAME exists. Proceeding with yardstick."
269             fi
270
271             # set virtualenv
272             echo "Yardstick: setup virtualenv"
273             cd $WORKSPACE
274             virtualenv $WORKSPACE/yardstick_venv
275             source $WORKSPACE/yardstick_venv/bin/activate
276             python setup.py develop > /dev/null 2>&1
277
278             # set virtualenv
279             echo "Yardstick: execute ping scenario"
280             yardstick task start samples/ping.yaml -v -d
281
282             # cleanup
283             echo "Yardstick: cleanup"
284             glance image-delete $IMAGE_NAME
285
286             # done
287             echo "Yardstick: done!"
288
289 - builder:
290     name: yardstick-fetch-os-creds
291     builders:
292         - shell:
293             !include-raw ../../utils/fetch_os_creds.sh