e5c306a5697d43ce5b1fd434d947fe4dda30095c
[releng.git] / jjb / yardstick / yardstick.yml
1 - project:
2     name: yardstick
3
4     project: '{name}'
5
6     pod:
7         - opnfv-jump-2:
8             installer: fuel
9         - ericsson-pod1:
10             installer: fuel
11         - huawei-us-deploy-bare-1:
12             installer: compass
13
14     loop:
15         - daily
16
17     jobs:
18         - 'yardstick-{installer}-{pod}-{loop}-{stream}'
19         - 'yardstick-merge-{stream}'
20         - 'yardstick-verify-{stream}'
21
22     stream:
23         - master:
24             branch: 'master'
25             gs-pathname: ''
26 #        - brahmaputra:
27 #            branch: 'stable/brahmaputra'
28 #            gs-pathname: '/brahmaputra'
29
30 - job-template:
31     name: 'yardstick-verify-{stream}'
32
33     parameters:
34         - project-parameter:
35             project: '{project}'
36         - gerrit-parameter:
37             branch: '{branch}'
38         - 'ericsson-ca-build-1-defaults'
39
40     scm:
41         - gerrit-trigger-scm:
42             credentials-id: '{ssh-credentials}'
43             refspec: '$GERRIT_REFSPEC'
44             choosing-strategy: 'gerrit'
45
46     triggers:
47         - gerrit:
48             trigger-on:
49                 - patchset-created-event:
50                     exclude-drafts: 'false'
51                     exclude-trivial-rebase: 'false'
52                     exclude-no-code-change: 'false'
53                 - draft-published-event
54                 - comment-added-contains-event:
55                     comment-contains-value: 'recheck'
56                 - comment-added-contains-event:
57                     comment-contains-value: 'reverify'
58             projects:
59               - project-compare-type: 'ANT'
60                 project-pattern: '{project}'
61                 branches:
62                   - branch-compare-type: 'ANT'
63                     branch-pattern: '**/{branch}'
64
65     builders:
66         - shell: |
67             #!/bin/bash
68             set -o errexit
69             set -o pipefail
70
71             echo "Running unit tests..."
72             cd $WORKSPACE
73             virtualenv $WORKSPACE/yardstick_venv
74             source $WORKSPACE/yardstick_venv/bin/activate
75             easy_install -U setuptools
76             python setup.py develop
77             ./run_tests.sh
78             deactivate
79
80 - job-template:
81     name: 'yardstick-merge-{stream}'
82
83     parameters:
84         - project-parameter:
85             project: '{project}'
86         - gerrit-parameter:
87             branch: '{branch}'
88         - 'ericsson-ca-build-1-defaults'
89
90     scm:
91         - gerrit-trigger-scm:
92             credentials-id: '{ssh-credentials}'
93             refspec: ''
94             choosing-strategy: 'default'
95
96     triggers:
97         - gerrit:
98             trigger-on:
99                 - change-merged-event
100                 - comment-added-contains-event:
101                     comment-contains-value: 'remerge'
102             projects:
103               - project-compare-type: 'ANT'
104                 project-pattern: '{project}'
105                 branches:
106                     - branch-compare-type: 'ANT'
107                       branch-pattern: '**/{branch}'
108
109     builders:
110         - shell: |
111             #!/bin/bash
112             set -o errexit
113             set -o pipefail
114
115             echo "Running unit tests..."
116             cd $WORKSPACE
117             virtualenv $WORKSPACE/yardstick_venv
118             source $WORKSPACE/yardstick_venv/bin/activate
119             easy_install -U setuptools
120             python setup.py develop
121             ./run_tests.sh
122             deactivate
123
124 - job-template:
125     name: 'yardstick-{installer}-{pod}-{loop}-{stream}'
126
127     disabled: false
128
129     parameters:
130         - project-parameter:
131             project: '{project}'
132         - '{pod}-defaults'
133         - '{installer}-defaults'
134         - 'yardstick-params-{pod}'
135         - string:
136             name: YARDSTICK_SUITE_NAME
137             default: opnfv_${{NODE_NAME}}_{loop}.yaml
138             description: 'Path to test suite'
139
140     scm:
141         - git-scm:
142             credentials-id: '{ssh-credentials}'
143             refspec: ''
144             branch: master
145
146     triggers:
147         - 'yardstick-trigger-{pod}'
148
149     builders:
150         - 'yardstick-cleanup'
151         - 'yardstick-fetch-os-creds'
152         - 'yardstick-daily'
153
154     publishers:
155         - email:
156             recipients: ana.cunha@ericsson.com jorgen.w.karlsson@ericsson.com
157
158 ########################
159 # builder macros
160 ########################
161 - builder:
162     name: yardstick-daily
163     builders:
164         - shell: |
165             #!/bin/bash
166             set -o errexit
167
168             echo "Yardstick: Run benchmark test suites ..."
169
170             # Pull the latest image
171             docker pull opnfv/yardstick
172
173             docker run \
174                --privileged=true \
175                 --rm \
176                 -t \
177                 -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
178                 -e "INSTALLER_IP=${INSTALLER_IP}" \
179                 -e "POD_NAME=${NODE_NAME}" \
180                 -e "EXTERNAL_NETWORK=net04_ext" \
181                 opnfv/yardstick \
182                 run_tests.sh \
183                 $YARDSTICK_SUITE_NAME
184
185             echo "Yardstick: done!"
186
187 - builder:
188     name: yardstick-fetch-os-creds
189     builders:
190         - shell:
191             !include-raw ../../utils/fetch_os_creds.sh
192
193 - builder:
194     name: yardstick-cleanup
195     builders:
196         - shell: |
197             #!/bin/bash
198
199             echo "Cleaning up docker containers/images..."
200
201             # Remove previous running containers if exist
202             if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then
203                 echo "Removing existing opnfv/yardstick containers..."
204                 docker ps | grep opnfv/yardstick | awk '{print $1}' | xargs docker stop
205                 docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm
206             fi
207
208             # Remove existing images if exist
209             if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then
210                 echo "Docker images to remove:"
211                 docker images | head -1 && docker images | grep opnfv/yardstick
212                 image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}'))
213                 for tag in "${image_tags[@]}"; do
214                     echo "Removing docker image opnfv/yardstick:$tag..."
215                     docker rmi opnfv/yardstick:$tag
216                 done
217             fi
218 ########################
219 # parameter macros
220 ########################
221 - parameter:
222     name: 'yardstick-params-ericsson-pod1'
223     parameters:
224         - string:
225             name: YARDSTICK_DB_BACKEND
226             default: 'none'
227             description: 'Arguments to use in order to choose the backend DB'
228
229 - parameter:
230     name: 'yardstick-params-opnfv-jump-2'
231     parameters:
232         - string:
233             name: YARDSTICK_DB_BACKEND
234             default: 'db_args'
235             description: 'Arguments to use in order to choose the backend DB'
236
237 - parameter:
238     name: 'yardstick-params-huawei-us-deploy-bare-1'
239     parameters:
240         - string:
241             name: YARDSTICK_DB_BACKEND
242             default: 'none'
243             description: 'Arguments to use in order to choose the backend DB'
244 ########################
245 # trigger macros
246 ########################
247 - trigger:
248     name: 'yardstick-trigger-ericsson-pod1'
249     triggers:
250         - timed: '@midnight'
251
252 - trigger:
253     name: 'yardstick-trigger-opnfv-jump-2'
254     triggers:
255         - timed: '#@midnight'
256
257 - trigger:
258     name: 'yardstick-trigger-huawei-us-deploy-bare-1'
259     triggers:
260         - timed: '#@midnight'