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