From 8267bbb6f9710bbe4ba25913eadd91b4789a7e99 Mon Sep 17 00:00:00 2001 From: Trevor Bramwell Date: Tue, 11 Jul 2017 14:56:31 -0700 Subject: [PATCH] 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 --- jjb/releng/opnfv-docker-arm.yml | 4 ++++ jjb/releng/opnfv-docker.sh | 2 +- jjb/releng/opnfv-docker.yml | 38 +++++++++++++++++++++++++++++++++----- 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 @@ -64,6 +64,10 @@ name: RELEASE_VERSION 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" 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,8 +127,12 @@ 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: "" @@ -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: -- 2.16.6