summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrevor Bramwell <tbramwell@linuxfoundation.org>2017-07-11 14:56:31 -0700
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2017-07-24 12:34:55 -0700
commit8267bbb6f9710bbe4ba25913eadd91b4789a7e99 (patch)
tree6bf12ab1eee85917786b059573f85ff61f3e6c9b
parent83fef5968f000a56ecebf21ae9b089a6a39b6e33 (diff)
Multiple Dockerfile Builds per Project
Instead of defining docker build jobs in terms of projects, we define them in terms of dockerrepos. Each dockerrepo is associated with a specific project and may have a seperate Dockerfile (which defaults to 'Dockerfile' if unspecified), and location for files needed by the Dockerfile (default: 'docker'). This should allow for running multiple docker builds out of a single project repository without having to modify the current docker build scripts. The output of this job configuration should match what is currently in Jenkins. Change-Id: I9089d57a0c7cc56be4225b56e96bec56be258f1f Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
-rw-r--r--jjb/releng/opnfv-docker-arm.yml4
-rw-r--r--jjb/releng/opnfv-docker.sh2
-rw-r--r--jjb/releng/opnfv-docker.yml38
3 files changed, 38 insertions, 6 deletions
diff --git a/jjb/releng/opnfv-docker-arm.yml b/jjb/releng/opnfv-docker-arm.yml
index 417fc702c..7502b17a1 100644
--- a/jjb/releng/opnfv-docker-arm.yml
+++ b/jjb/releng/opnfv-docker-arm.yml
@@ -65,6 +65,10 @@
default: ""
description: "Release version, e.g. 1.0, 2.0, 3.0"
- string:
+ name: DOCKER_DIR
+ default: "docker"
+ description: "Directory containing files needed by the Dockerfile"
+ - string:
name: DOCKERFILE
default: "Dockerfile.aarch64"
description: "Dockerfile to use for creating the image."
diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh
index ebd0c9f3d..0de3df28e 100644
--- a/jjb/releng/opnfv-docker.sh
+++ b/jjb/releng/opnfv-docker.sh
@@ -54,7 +54,7 @@ if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
done
fi
-cd $WORKSPACE/docker
+cd $WORKSPACE/$DOCKER_DIR
HOST_ARCH=$(uname -m)
if [ ! -f "${DOCKERFILE}" ]; then
# If this is expected to be a Dockerfile for other arch than x86
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
index 095ba4129..9f6158ccf 100644
--- a/jjb/releng/opnfv-docker.yml
+++ b/jjb/releng/opnfv-docker.yml
@@ -23,62 +23,86 @@
other-receivers: &other-receivers
receivers: ''
- project:
+ dockerfile: "Dockerfile"
+ dockerdir: "docker"
+
+ # This is the dockerhub repo the image will be pushed to as
+ # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
+ # 'project' is the OPNFV repo we expect to contain the Dockerfile
+ dockerrepo:
# projects with jobs for master
- 'releng-anteater':
+ project: 'releng-anteater'
<<: *master
<<: *other-receivers
- 'bottlenecks':
+ project: 'bottlenecks'
<<: *master
<<: *other-receivers
- 'cperf':
+ project: 'cperf'
<<: *master
<<: *other-receivers
- 'dovetail':
+ project: 'dovetail'
<<: *master
<<: *other-receivers
- 'functest':
+ project: 'functest'
<<: *master
<<: *functest-receivers
- 'qtip':
+ project: 'qtip'
<<: *master
<<: *other-receivers
- 'storperf':
+ project: 'storperf'
<<: *master
<<: *other-receivers
- 'yardstick':
+ project: 'yardstick'
<<: *master
<<: *other-receivers
# projects with jobs for stable
- 'bottlenecks':
+ project: 'bottlenecks'
<<: *danube
<<: *other-receivers
- 'functest':
+ project: 'functest'
<<: *danube
<<: *functest-receivers
- 'qtip':
+ project: 'qtip'
<<: *danube
<<: *other-receivers
- 'storperf':
+ project: 'storperf'
<<: *danube
<<: *other-receivers
- 'yardstick':
+ project: 'yardstick'
<<: *danube
<<: *other-receivers
jobs:
- - '{project}-docker-build-push-{stream}'
+ - "{dockerrepo}-docker-build-push-{stream}"
- project:
name: opnfv-monitor-docker # projects which only monitor dedicated file or path
+ dockerfile: "Dockerfile"
+ dockerdir: "docker"
+
project:
# projects with jobs for master
- 'daisy':
+ dockerrepo: 'daisy'
<<: *master
- 'escalator':
+ dockerrepo: 'escalator'
<<: *master
jobs:
@@ -88,7 +112,7 @@
# job templates
########################
- job-template:
- name: '{project}-docker-build-push-{stream}'
+ name: '{dockerrepo}-docker-build-push-{stream}'
disabled: '{obj:disabled}'
@@ -103,9 +127,13 @@
description: "To enable/disable pushing the image to Dockerhub."
- string:
name: DOCKER_REPO_NAME
- default: "opnfv/{project}"
+ default: "opnfv/{dockerrepo}"
description: "Dockerhub repo to be pushed to."
- string:
+ name: DOCKER_DIR
+ default: "{dockerdir}"
+ description: "Directory containing files needed by the Dockerfile"
+ - string:
name: COMMIT_ID
default: ""
description: "commit id to make a snapshot docker image"
@@ -115,7 +143,7 @@
description: "Release version, e.g. 1.0, 2.0, 3.0"
- string:
name: DOCKERFILE
- default: "Dockerfile"
+ default: "{dockerfile}"
description: "Dockerfile to use for creating the image."
scm: