Multiple Dockerfile Builds per Project
[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         - 'qtip':
55             project: 'qtip'
56             <<: *master
57             <<: *other-receivers
58         - 'storperf':
59             project: 'storperf'
60             <<: *master
61             <<: *other-receivers
62         - 'yardstick':
63             project: 'yardstick'
64             <<: *master
65             <<: *other-receivers
66         # projects with jobs for stable
67         - 'bottlenecks':
68             project: 'bottlenecks'
69             <<: *danube
70             <<: *other-receivers
71         - 'functest':
72             project: 'functest'
73             <<: *danube
74             <<: *functest-receivers
75         - 'qtip':
76             project: 'qtip'
77             <<: *danube
78             <<: *other-receivers
79         - 'storperf':
80             project: 'storperf'
81             <<: *danube
82             <<: *other-receivers
83         - 'yardstick':
84             project: 'yardstick'
85             <<: *danube
86             <<: *other-receivers
87
88     jobs:
89         - "{dockerrepo}-docker-build-push-{stream}"
90
91
92 - project:
93
94     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
95
96     dockerfile: "Dockerfile"
97     dockerdir: "docker"
98
99     project:
100         # projects with jobs for master
101         - 'daisy':
102             dockerrepo: 'daisy'
103             <<: *master
104         - 'escalator':
105             dockerrepo: 'escalator'
106             <<: *master
107
108     jobs:
109         - '{project}-docker-build-push-monitor-{stream}'
110
111 ########################
112 # job templates
113 ########################
114 - job-template:
115     name: '{dockerrepo}-docker-build-push-{stream}'
116
117     disabled: '{obj:disabled}'
118
119     parameters: &parameters
120         - project-parameter:
121             project: '{project}'
122             branch: '{branch}'
123         - 'opnfv-build-ubuntu-defaults'
124         - string:
125             name: PUSH_IMAGE
126             default: "true"
127             description: "To enable/disable pushing the image to Dockerhub."
128         - string:
129             name: DOCKER_REPO_NAME
130             default: "opnfv/{dockerrepo}"
131             description: "Dockerhub repo to be pushed to."
132         - string:
133             name: DOCKER_DIR
134             default: "{dockerdir}"
135             description: "Directory containing files needed by the Dockerfile"
136         - string:
137             name: COMMIT_ID
138             default: ""
139             description: "commit id to make a snapshot docker image"
140         - string:
141             name: RELEASE_VERSION
142             default: ""
143             description: "Release version, e.g. 1.0, 2.0, 3.0"
144         - string:
145             name: DOCKERFILE
146             default: "{dockerfile}"
147             description: "Dockerfile to use for creating the image."
148
149     scm:
150         - git-scm
151
152     builders: &builders
153         - shell:
154             !include-raw-escape: ./opnfv-docker.sh
155
156     triggers:
157         - pollscm:
158             cron: "*/30 * * * *"
159
160     publishers:
161         - email:
162             recipients: '{receivers}'
163
164 - job-template:
165     name: '{project}-docker-build-push-monitor-{stream}'
166     disabled: '{obj:disabled}'
167     parameters: *parameters
168     scm:
169         - git-scm
170     builders: *builders
171
172     # trigger only matching the file name
173     triggers:
174         - gerrit:
175             trigger-on:
176                 - change-merged-event
177                 - comment-added-contains-event:
178                     comment-contains-value: 'remerge'
179             projects:
180               - project-compare-type: 'ANT'
181                 project-pattern: '{project}'
182                 branches:
183                     - branch-compare-type: 'ANT'
184                       branch-pattern: '**/{branch}'
185                 file-paths:
186                   - compare-type: ANT
187                     pattern: 'docker/**'
188