80a972bbe38858567ad0c2c30e4b5407977e5dc7
[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         - danube:
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         - logrotate-default
118         - throttle:
119             enabled: true
120             max-total: 1
121             max-per-node: 1
122             option: 'project'
123
124     parameters:
125         - project-parameter:
126             project: '{project}'
127         - gerrit-parameter:
128             branch: '{branch}'
129         - 'opnfv-build-ubuntu-defaults'
130         - bottlenecks-parameter:
131             gs-packagepath: '{gs-packagepath}'
132
133     scm:
134         - git-scm
135
136     builders:
137         - 'bottlenecks-builder-upload-artifact'
138         - 'bottlenecks-workspace-cleanup'
139
140 ####################
141 # parameter macros
142 ####################
143 - parameter:
144     name: bottlenecks-parameter
145     parameters:
146         - string:
147            name: CACHE_DIR
148            default: $WORKSPACE/cache{gs-packagepath}
149            description: "the cache to store packages downloaded from public IP"
150         - string:
151            name: SUITE_URL
152            default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath}
153            description: "LF artifacts url for storage of bottlenecks packages"
154         - string:
155            name: PACKAGE_URL
156            default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/
157            description: "the url where we store the packages used for bottlenecks rubbos"
158
159 ####################################
160 #builders for bottlenecks project
161 ####################################
162 - builder:
163     name: bottlenecks-builder-upload-artifact
164     builders:
165         - shell: |
166             #!/bin/bash
167             set -o errexit
168
169             echo "Bottlenecks: upload to artifacts from the public IP"
170
171             [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR
172
173             for file in $(curl -s $PACKAGE_URL |
174                                grep href |
175                                sed 's/.*href="//' |
176                                sed 's/".*//' |
177                                grep '^[a-zA-Z].*'); do
178                  curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v
179                  echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL"
180                  gsutil cp $CACHE_DIR/$file $SUITE_URL
181             done
182
183 - builder:
184     name: bottlenecks-workspace-cleanup
185     builders:
186         - shell: |
187             #!/bin/bash
188             set -o errexit
189
190             echo "Bottlenecks: cleanup cache used for storage downloaded packages"
191
192             /bin/rm -rf $CACHE_DIR
193
194 - builder:
195     name: bottlenecks-unit-tests
196     builders:
197         - shell: |
198             #!/bin/bash
199             set -o errexit
200             set -o pipefail
201
202             echo "Running unit tests..."
203             cd $WORKSPACE
204             virtualenv $WORKSPACE/bottlenecks_venv
205             source $WORKSPACE/bottlenecks_venv/bin/activate
206
207             # install python packages
208             easy_install -U setuptools
209             easy_install -U pip
210             pip install -r requirements.txt
211
212             # unit tests
213             /bin/bash $WORKSPACE/tests.sh
214
215             deactivate
216
217 - builder:
218     name: bottlenecks-hello
219     builders:
220         - shell: |
221             #!/bin/bash
222             set -o errexit
223
224             echo "hello"