fix ci jobs (daily && no branch param)
[releng.git] / jjb / bottlenecks / bottlenecks-project-jobs.yml
1 ###################################################
2 # Non-ci jobs for Bottlenecks project
3 # They will only be enabled on request by projects!
4 ###################################################
5 - project:
6     name: bottlenecks-project-jobs
7
8     project: 'bottlenecks'
9
10     jobs:
11         - 'bottlenecks-verify-{stream}'
12         - 'bottlenecks-merge-{stream}'
13         - 'bottlenecks-{suite}-upload-artifacts-{stream}'
14
15     stream:
16         - master:
17             branch: '{stream}'
18             #This is used for common project file storage
19             gs-pathname: ''
20             #This is used for different test suite dependent packages storage
21             gs-packagepath: '/{suite}'
22             disabled: false
23         - colorado:
24             branch: 'stable/{stream}'
25             gs-pathname: '/{stream}'
26             gs-packagepath: '/{stream}/{suite}'
27             disabled: false
28
29     suite:
30         - 'rubbos'
31         - 'vstf'
32
33 ################################
34 # job templates
35 ################################
36
37 - job-template:
38     name: 'bottlenecks-verify-{stream}'
39
40     disabled: '{obj:disabled}'
41
42     parameters:
43         - project-parameter:
44             project: '{project}'
45         - gerrit-parameter:
46             branch: '{branch}'
47         - 'opnfv-build-ubuntu-defaults'
48
49     scm:
50         - git-scm-gerrit
51
52     triggers:
53         - gerrit:
54             server-name: 'gerrit.opnfv.org'
55             trigger-on:
56                 - patchset-created-event:
57                     exclude-drafts: 'false'
58                     exclude-trivial-rebase: 'false'
59                     exclude-no-code-change: 'false'
60                 - draft-published-event
61                 - comment-added-contains-event:
62                     comment-contains-value: 'recheck'
63                 - comment-added-contains-event:
64                     comment-contains-value: 'reverify'
65             projects:
66               - project-compare-type: 'ANT'
67                 project-pattern: '{project}'
68                 branches:
69                   - branch-compare-type: 'ANT'
70                     branch-pattern: '**/{branch}'
71     builders:
72         - bottlenecks-hello
73         #- bottlenecks-unit-tests
74
75 - job-template:
76     name: 'bottlenecks-merge-{stream}'
77
78     disabled: '{obj:disabled}'
79
80     parameters:
81         - project-parameter:
82             project: '{project}'
83         - gerrit-parameter:
84             branch: '{branch}'
85         - 'opnfv-build-ubuntu-defaults'
86
87     scm:
88         - git-scm
89
90     triggers:
91         - gerrit:
92             server-name: 'gerrit.opnfv.org'
93             trigger-on:
94                 - change-merged-event
95                 - comment-added-contains-event:
96                     comment-contains-value: 'remerge'
97             projects:
98               - project-compare-type: 'ANT'
99                 project-pattern: '{project}'
100                 branches:
101                     - branch-compare-type: 'ANT'
102                       branch-pattern: '**/{branch}'
103
104     builders:
105         - bottlenecks-hello
106         #- bottlenecks-unit-tests
107
108 - job-template:
109     name: 'bottlenecks-{suite}-upload-artifacts-{stream}'
110
111
112     disabled: '{obj:disabled}'
113
114     concurrent: true
115
116     properties:
117         - throttle:
118             enabled: true
119             max-total: 1
120             max-per-node: 1
121             option: 'project'
122
123     parameters:
124         - project-parameter:
125             project: '{project}'
126         - gerrit-parameter:
127             branch: '{branch}'
128         - 'opnfv-build-ubuntu-defaults'
129         - bottlenecks-parameter:
130             gs-packagepath: '{gs-packagepath}'
131
132     scm:
133         - git-scm
134
135     builders:
136         - 'bottlenecks-builder-upload-artifact'
137         - 'bottlenecks-workspace-cleanup'
138
139 ####################
140 # parameter macros
141 ####################
142 - parameter:
143     name: bottlenecks-parameter
144     parameters:
145         - string:
146            name: CACHE_DIR
147            default: $WORKSPACE/cache{gs-packagepath}
148            description: "the cache to store packages downloaded from public IP"
149         - string:
150            name: SUITE_URL
151            default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath}
152            description: "LF artifacts url for storage of bottlenecks packages"
153         - string:
154            name: PACKAGE_URL
155            default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/
156            description: "the url where we store the packages used for bottlenecks rubbos"
157
158 ####################################
159 #builders for bottlenecks project
160 ####################################
161 - builder:
162     name: bottlenecks-builder-upload-artifact
163     builders:
164         - shell: |
165             #!/bin/bash
166             set -o errexit
167
168             echo "Bottlenecks: upload to artifacts from the public IP"
169
170             [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR
171
172             for file in $(curl -s $PACKAGE_URL |
173                                grep href |
174                                sed 's/.*href="//' |
175                                sed 's/".*//' |
176                                grep '^[a-zA-Z].*'); do
177                  curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v
178                  echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL"
179                  gsutil cp $CACHE_DIR/$file $SUITE_URL
180             done
181
182 - builder:
183     name: bottlenecks-workspace-cleanup
184     builders:
185         - shell: |
186             #!/bin/bash
187             set -o errexit
188
189             echo "Bottlenecks: cleanup cache used for storage downloaded packages"
190
191             /bin/rm -rf $CACHE_DIR
192
193 - builder:
194     name: bottlenecks-unit-tests
195     builders:
196         - shell: |
197             #!/bin/bash
198             set -o errexit
199             set -o pipefail
200
201             echo "Running unit tests..."
202             cd $WORKSPACE
203             virtualenv $WORKSPACE/bottlenecks_venv
204             source $WORKSPACE/bottlenecks_venv/bin/activate
205
206             # install python packages
207             easy_install -U setuptools
208             easy_install -U pip
209             pip install -r requirements.txt
210
211             # unit tests
212             /bin/bash $WORKSPACE/tests.sh
213
214             deactivate
215
216 - builder:
217     name: bottlenecks-hello
218     builders:
219         - shell: |
220             #!/bin/bash
221             set -o errexit
222
223             echo "hello"