Throttle Docker Builds to 1 Per-Node
[releng.git] / jjb / releng / opnfv-docker-arm.yml
1 ##############################################
2 # job configuration for docker build and push
3 ##############################################
4
5 - project:
6
7     name: opnfv-docker-arm
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     euphrates: &euphrates
18         stream: euphrates
19         branch: 'stable/{stream}'
20         disabled: false
21     functest-arm-receivers: &functest-arm-receivers
22         receivers: >
23             cristina.pauna@enea.com
24             alexandru.avadanii@enea.com
25     dovetail-arm-receivers: &dovetail-arm-receivers
26         receivers: >
27             cristina.pauna@enea.com
28             alexandru.avadanii@enea.com
29             alexandru.nemes@enea.com
30     storperf-arm-receivers: &storperf-arm-receivers
31         receivers: >
32             cristina.pauna@enea.com
33             alexandru.avadanii@enea.com
34             mark.beierl@emc.com
35     yardstick-arm-receivers: &yardstick-arm-receivers
36         receivers: >
37             cristina.pauna@enea.com
38             alexandru.avadanii@enea.com
39             alexandru.nemes@enea.com
40             catalina.focsa@enea.com
41     other-receivers: &other-receivers
42         receivers: ''
43
44     dockerfile: "Dockerfile.aarch64"
45     dockerdir: "docker"
46     docker_repo_name: "opnfv/{project}_aarch64"
47     arch_tag: ""
48
49     dockerrepo:
50         # projects with jobs for master
51         - 'functest':
52             project: 'functest'
53             <<: *master
54             <<: *functest-arm-receivers
55         - 'dovetail':
56             project: 'dovetail'
57             <<: *master
58             <<: *dovetail-arm-receivers
59         - 'storperf-master':
60             project: 'storperf'
61             dockerdir: 'docker/storperf-master'
62             dockerfile: 'Dockerfile'
63             docker_repo_name: 'opnfv/storperf-master'
64             arch_tag: 'aarch64'
65             <<: *master
66             <<: *storperf-arm-receivers
67         - 'storperf-graphite':
68             project: 'storperf'
69             dockerdir: 'docker/storperf-graphite'
70             dockerfile: 'Dockerfile'
71             docker_repo_name: 'opnfv/storperf-graphite'
72             arch_tag: 'aarch64'
73             <<: *master
74             <<: *storperf-arm-receivers
75         - 'storperf-httpfrontend':
76             project: 'storperf'
77             dockerdir: 'docker/storperf-httpfrontend'
78             dockerfile: 'Dockerfile'
79             docker_repo_name: 'opnfv/storperf-httpfrontend'
80             arch_tag: 'aarch64'
81             <<: *master
82             <<: *storperf-arm-receivers
83         - 'storperf-reporting':
84             project: 'storperf'
85             dockerdir: 'docker/storperf-reporting'
86             dockerfile: 'Dockerfile'
87             docker_repo_name: 'opnfv/storperf-reporting'
88             arch_tag: 'aarch64'
89             <<: *master
90             <<: *storperf-arm-receivers
91         - 'storperf-swaggerui':
92             project: 'storperf'
93             dockerdir: 'docker/storperf-swaggerui'
94             dockerfile: 'Dockerfile'
95             docker_repo_name: 'opnfv/storperf-swaggerui'
96             arch_tag: 'aarch64'
97             <<: *master
98             <<: *storperf-arm-receivers
99         - 'yardstick':
100             project: 'yardstick'
101             <<: *master
102             <<: *yardstick-arm-receivers
103         # projects with jobs for stable/euphrates
104         - 'storperf-master':
105             project: 'storperf'
106             dockerdir: 'docker/storperf-master'
107             dockerfile: 'Dockerfile'
108             docker_repo_name: 'opnfv/storperf-master'
109             arch_tag: 'aarch64'
110             <<: *euphrates
111             <<: *storperf-arm-receivers
112         - 'storperf-graphite':
113             project: 'storperf'
114             dockerdir: 'docker/storperf-graphite'
115             dockerfile: 'Dockerfile'
116             docker_repo_name: 'opnfv/storperf-graphite'
117             arch_tag: 'aarch64'
118             <<: *euphrates
119             <<: *storperf-arm-receivers
120         - 'storperf-httpfrontend':
121             project: 'storperf'
122             dockerdir: 'docker/storperf-httpfrontend'
123             dockerfile: 'Dockerfile'
124             docker_repo_name: 'opnfv/storperf-httpfrontend'
125             arch_tag: 'aarch64'
126             <<: *euphrates
127             <<: *storperf-arm-receivers
128         - 'storperf-reporting':
129             project: 'storperf'
130             dockerdir: 'docker/storperf-reporting'
131             dockerfile: 'Dockerfile'
132             docker_repo_name: 'opnfv/storperf-reporting'
133             arch_tag: 'aarch64'
134             <<: *euphrates
135             <<: *storperf-arm-receivers
136         - 'storperf-swaggerui':
137             project: 'storperf'
138             dockerdir: 'docker/storperf-swaggerui'
139             dockerfile: 'Dockerfile'
140             docker_repo_name: 'opnfv/storperf-swaggerui'
141             arch_tag: 'aarch64'
142             <<: *euphrates
143             <<: *storperf-arm-receivers
144
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: RELEASE_VERSION
171             default: ""
172             description: "Release version, e.g. 1.0, 2.0, 3.0"
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
186     properties:
187         - throttle:
188             max-per-node: 1
189             option: 'project'
190
191     scm:
192         - git-scm
193
194     builders: &builders
195         - shell:
196             !include-raw-escape: ./opnfv-docker.sh
197
198     triggers:
199         - pollscm:
200             cron: "*/30 * * * *"
201
202     publishers:
203         - email:
204             recipients: '{receivers}'
205         - email-jenkins-admins-on-failure