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