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