e8a227f5b1e0c6e48268a775a79261c4dbff96ba
[releng.git] / jjb / releng / opnfv-docker-arm.yaml
1 ---
2 ##############################################
3 # job configuration for docker build and push
4 ##############################################
5
6 - project:
7
8     name: opnfv-docker-arm
9
10     master: &master
11       stream: master
12       branch: '{stream}'
13       disabled: false
14     euphrates: &euphrates
15       stream: euphrates
16       branch: 'stable/{stream}'
17       disabled: false
18     hunter: &hunter
19       stream: hunter
20       branch: 'stable/{stream}'
21       disabled: false
22     iruya: &iruya
23       stream: iruya
24       branch: 'stable/{stream}'
25       disabled: false
26     dovetail-arm-receivers: &dovetail-arm-receivers
27       receivers: >
28           cristina.pauna@enea.com
29           alexandru.avadanii@enea.com
30     storperf-arm-receivers: &storperf-arm-receivers
31       receivers: >
32           cristina.pauna@enea.com
33           alexandru.avadanii@enea.com
34           mbeierl@vmware.com
35     other-receivers: &other-receivers
36       receivers: ''
37
38     dockerfile: "Dockerfile"
39     dockerdir: "docker"
40     docker_repo_name: "opnfv/{project}_aarch64"
41     arch_tag: ""
42     extra_build_args: ""
43
44     # yamllint disable rule:key-duplicates
45     dockerrepo:
46       # projects with jobs for master
47       - 'dovetail':
48           project: 'dovetail'
49           <<: *master
50           <<: *dovetail-arm-receivers
51       - 'storperf-master':
52           project: 'storperf'
53           dockerdir: 'docker/storperf-master'
54           docker_repo_name: 'opnfv/storperf-master'
55           arch_tag: 'aarch64'
56           <<: *master
57           <<: *storperf-arm-receivers
58       - 'storperf-graphite':
59           project: 'storperf'
60           dockerdir: 'docker/storperf-graphite'
61           docker_repo_name: 'opnfv/storperf-graphite'
62           arch_tag: 'aarch64'
63           <<: *master
64           <<: *storperf-arm-receivers
65       - 'storperf-httpfrontend':
66           project: 'storperf'
67           dockerdir: 'docker/storperf-httpfrontend'
68           docker_repo_name: 'opnfv/storperf-httpfrontend'
69           arch_tag: 'aarch64'
70           <<: *master
71           <<: *storperf-arm-receivers
72       - 'storperf-reporting':
73           project: 'storperf'
74           dockerdir: 'docker/storperf-reporting'
75           docker_repo_name: 'opnfv/storperf-reporting'
76           arch_tag: 'aarch64'
77           <<: *master
78           <<: *storperf-arm-receivers
79       - 'storperf-swaggerui':
80           project: 'storperf'
81           dockerdir: 'docker/storperf-swaggerui'
82           docker_repo_name: 'opnfv/storperf-swaggerui'
83           arch_tag: 'aarch64'
84           <<: *master
85           <<: *storperf-arm-receivers
86       - 'storperf-workloadagent':
87           project: 'storperf'
88           dockerdir: 'docker/storperf-workloadagent'
89           docker_repo_name: 'opnfv/storperf-workloadagent'
90           arch_tag: 'aarch64'
91           <<: *master
92           <<: *storperf-arm-receivers
93
94       # projects with jobs for stable/euphrates
95       - 'dovetail':
96           project: 'dovetail'
97           <<: *euphrates
98           <<: *dovetail-arm-receivers
99
100       # projects with jobs for stable/iruya
101       - 'storperf-master':
102           project: 'storperf'
103           dockerdir: 'docker/storperf-master'
104           docker_repo_name: 'opnfv/storperf-master'
105           arch_tag: 'aarch64'
106           <<: *iruya
107           <<: *storperf-arm-receivers
108       - 'storperf-graphite':
109           project: 'storperf'
110           dockerdir: 'docker/storperf-graphite'
111           docker_repo_name: 'opnfv/storperf-graphite'
112           arch_tag: 'aarch64'
113           <<: *iruya
114           <<: *storperf-arm-receivers
115       - 'storperf-httpfrontend':
116           project: 'storperf'
117           dockerdir: 'docker/storperf-httpfrontend'
118           docker_repo_name: 'opnfv/storperf-httpfrontend'
119           arch_tag: 'aarch64'
120           <<: *iruya
121           <<: *storperf-arm-receivers
122       - 'storperf-reporting':
123           project: 'storperf'
124           dockerdir: 'docker/storperf-reporting'
125           docker_repo_name: 'opnfv/storperf-reporting'
126           arch_tag: 'aarch64'
127           <<: *iruya
128           <<: *storperf-arm-receivers
129       - 'storperf-swaggerui':
130           project: 'storperf'
131           dockerdir: 'docker/storperf-swaggerui'
132           docker_repo_name: 'opnfv/storperf-swaggerui'
133           arch_tag: 'aarch64'
134           <<: *iruya
135           <<: *storperf-arm-receivers
136       - 'storperf-workloadagent':
137           project: 'storperf'
138           dockerdir: 'docker/storperf-workloadagent'
139           docker_repo_name: 'opnfv/storperf-workloadagent'
140           arch_tag: 'aarch64'
141           <<: *iruya
142           <<: *storperf-arm-receivers
143
144     # yamllint enable rule:key-duplicates
145     jobs:
146       - '{dockerrepo}-docker-build-arm-push-{stream}'
147
148 ########################
149 # job templates
150 ########################
151 - job-template:
152     name: '{dockerrepo}-docker-build-arm-push-{stream}'
153
154     disabled: '{obj:disabled}'
155
156     parameters: &parameters
157       - project-parameter:
158           project: '{project}'
159           branch: '{branch}'
160       - 'opnfv-build-ubuntu-arm-defaults'
161       - string:
162           name: PUSH_IMAGE
163           default: "true"
164           description: "To enable/disable pushing the image to Dockerhub."
165       - string:
166           name: DOCKER_REPO_NAME
167           default: "{docker_repo_name}"
168           description: "Dockerhub repo to be pushed to."
169       - string:
170           name: GERRIT_REFNAME
171           default: ""
172           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
173       - string:
174           name: DOCKER_DIR
175           default: "{dockerdir}"
176           description: "Directory containing files needed by the Dockerfile"
177       - string:
178           name: DOCKERFILE
179           default: "{dockerfile}"
180           description: "Dockerfile to use for creating the image."
181       - string:
182           name: ARCH_TAG
183           default: "{arch_tag}"
184           description: "If set, this value will be added to the docker image tag"
185       - string:
186           name: EXTRA_BUILD_ARGS
187           default: "{extra_build_args}"
188           description: "Whitespace separated key=value pairs. If set, these args will be used to build docker image"
189
190     properties:
191       - throttle:
192           max-per-node: 1
193           option: 'project'
194
195     scm:
196       - git-scm
197
198     builders: &builders
199       - shell:
200           !include-raw-escape: ./opnfv-docker.sh
201
202     triggers:
203       - pollscm:
204           cron: "*/30 * * * *"
205       - gerrit-trigger-tag-created:
206           project: '{project}'
207
208     publishers:
209       - email:
210           recipients: '{receivers}'
211       - email-jenkins-admins-on-failure