5b63f3a12f7e14c034661606514f4fb632a57270
[releng.git] / jjb / releng / opnfv-docker.yml
1 ##############################################
2 # job configuration for docker build and push
3 ##############################################
4
5 - project:
6
7     name: opnfv-docker
8
9     master: &master
10         stream: master
11         branch: '{stream}'
12         disabled: false
13     danube: &danube
14         stream: danube
15         branch: 'stable/{stream}'
16         disabled: false
17     functest-receivers: &functest-receivers
18         receivers: >
19             jose.lausuch@ericsson.com morgan.richomme@orange.com
20             cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
21             yaohelan@huawei.com helanyao@gmail.com
22             juha.kosonen@nokia.com
23     other-receivers: &other-receivers
24         receivers: ''
25
26     dockerfile: "Dockerfile"
27     dockerdir: "docker"
28
29     # This is the dockerhub repo the image will be pushed to as
30     # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
31     # 'project' is the OPNFV repo we expect to contain the Dockerfile
32     dockerrepo:
33         # projects with jobs for master
34         - 'releng-anteater':
35             project: 'releng-anteater'
36             <<: *master
37             <<: *other-receivers
38         - 'bottlenecks':
39             project: 'bottlenecks'
40             <<: *master
41             <<: *other-receivers
42         - 'cperf':
43             project: 'cperf'
44             <<: *master
45             <<: *other-receivers
46         - 'dovetail':
47             project: 'dovetail'
48             <<: *master
49             <<: *other-receivers
50         - 'functest':
51             project: 'functest'
52             <<: *master
53             <<: *functest-receivers
54         - 'nfvbench':
55             project: 'nfvbench'
56             <<: *master
57             <<: *other-receivers
58         - 'qtip':
59             project: 'qtip'
60             <<: *master
61             <<: *other-receivers
62         - 'storperf-master':
63             project: 'storperf'
64             dockerdir: 'docker/storperf-master'
65             <<: *master
66             <<: *other-receivers
67         - 'storperf-graphite':
68             project: 'storperf'
69             dockerdir: 'docker/storperf-graphite'
70             <<: *master
71             <<: *other-receivers
72         - 'storperf-httpfrontend':
73             project: 'storperf'
74             dockerdir: 'docker/storperf-httpfrontend'
75             <<: *master
76             <<: *other-receivers
77         - 'storperf-reporting':
78             project: 'storperf'
79             dockerdir: 'docker/storperf-reporting'
80             <<: *master
81             <<: *other-receivers
82         - 'storperf-swaggerui':
83             project: 'storperf'
84             dockerdir: 'docker/storperf-swaggerui'
85             <<: *master
86             <<: *other-receivers
87         - 'yardstick':
88             project: 'yardstick'
89             <<: *master
90             <<: *other-receivers
91         # projects with jobs for stable
92         - 'bottlenecks':
93             project: 'bottlenecks'
94             <<: *danube
95             <<: *other-receivers
96         - 'functest':
97             project: 'functest'
98             <<: *danube
99             <<: *functest-receivers
100         - 'qtip':
101             project: 'qtip'
102             <<: *danube
103             <<: *other-receivers
104         - 'storperf':
105             project: 'storperf'
106             <<: *danube
107             <<: *other-receivers
108         - 'yardstick':
109             project: 'yardstick'
110             <<: *danube
111             <<: *other-receivers
112
113     jobs:
114         - "{dockerrepo}-docker-build-push-{stream}"
115
116
117 - project:
118
119     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
120
121     dockerfile: "Dockerfile"
122     dockerdir: "docker"
123
124     project:
125         # projects with jobs for master
126         - 'daisy':
127             dockerrepo: 'daisy'
128             <<: *master
129         - 'escalator':
130             dockerrepo: 'escalator'
131             <<: *master
132
133     jobs:
134         - '{project}-docker-build-push-monitor-{stream}'
135
136 ########################
137 # job templates
138 ########################
139 - job-template:
140     name: '{dockerrepo}-docker-build-push-{stream}'
141
142     disabled: '{obj:disabled}'
143
144     parameters: &parameters
145         - project-parameter:
146             project: '{project}'
147             branch: '{branch}'
148         - 'opnfv-build-ubuntu-defaults'
149         - string:
150             name: PUSH_IMAGE
151             default: "true"
152             description: "To enable/disable pushing the image to Dockerhub."
153         - string:
154             name: DOCKER_REPO_NAME
155             default: "opnfv/{dockerrepo}"
156             description: "Dockerhub repo to be pushed to."
157         - string:
158             name: DOCKER_DIR
159             default: "{dockerdir}"
160             description: "Directory containing files needed by the Dockerfile"
161         - string:
162             name: COMMIT_ID
163             default: ""
164             description: "commit id to make a snapshot docker image"
165         - string:
166             name: RELEASE_VERSION
167             default: ""
168             description: "Release version, e.g. 1.0, 2.0, 3.0"
169         - string:
170             name: DOCKERFILE
171             default: "{dockerfile}"
172             description: "Dockerfile to use for creating the image."
173
174     scm:
175         - git-scm
176
177     builders: &builders
178         - shell:
179             !include-raw-escape: ./opnfv-docker.sh
180
181     triggers:
182         - pollscm:
183             cron: "*/30 * * * *"
184
185     publishers:
186         - email:
187             recipients: '{receivers}'
188         - email-jenkins-admins-on-failure
189
190 - job-template:
191     name: '{project}-docker-build-push-monitor-{stream}'
192     disabled: '{obj:disabled}'
193     parameters: *parameters
194     scm:
195         - git-scm
196     builders: *builders
197
198     # trigger only matching the file name
199     triggers:
200         - gerrit:
201             trigger-on:
202                 - change-merged-event
203                 - comment-added-contains-event:
204                     comment-contains-value: 'remerge'
205             projects:
206               - project-compare-type: 'ANT'
207                 project-pattern: '{project}'
208                 branches:
209                     - branch-compare-type: 'ANT'
210                       branch-pattern: '**/{branch}'
211                 file-paths:
212                   - compare-type: ANT
213                     pattern: 'docker/**'
214