Optional Architecture Specific Push 73/41773/11
authormbeierl <mark.beierl@dell.com>
Tue, 12 Sep 2017 18:25:57 +0000 (14:25 -0400)
committerAric Gardner <agardner@linuxfoundation.org>
Wed, 13 Sep 2017 16:55:01 +0000 (16:55 +0000)
Enables optional argument to specify the architecture to use
when building and pushing the image.  If project defines it,
the arch is added to the docker version like so: arch-version.
This matches the tag convention used by multiarch/alpine.

Change-Id: I699c2aba05c55291b5f8c48bcc1daacceae6154b
JIRA: STORPERF-210
Signed-off-by: mbeierl <mark.beierl@dell.com>
jjb/releng/opnfv-docker-arm.yml
jjb/releng/opnfv-docker.sh
jjb/releng/opnfv-docker.yml

index 842d496..ec1d743 100644 (file)
             cristina.pauna@enea.com
             alexandru.avadanii@enea.com
             alexandru.nemes@enea.com
+    storperf-arm-receivers: &storperf-arm-receivers
+        receivers: >
+            cristina.pauna@enea.com
+            alexandru.avadanii@enea.com
+            mark.beierl@emc.com
     yardstick-arm-receivers: &yardstick-arm-receivers
         receivers: >
             cristina.pauna@enea.com
     other-receivers: &other-receivers
         receivers: ''
 
-    project:
+    dockerfile: "Dockerfile.aarch64"
+    dockerdir: "docker"
+    arch_tag: ""
+
+    dockerrepo:
         # projects with jobs for master
         - 'functest':
+            project: 'functest'
             <<: *master
             <<: *functest-arm-receivers
         - 'dovetail':
+            project: 'dovetail'
             <<: *master
             <<: *dovetail-arm-receivers
+        - 'storperf-master':
+            project: 'storperf'
+            dockerdir: 'docker/storperf-master'
+            dockerfile: 'Dockerfile'
+            docker_repo_name: 'opnfv/storperf-master'
+            arch_tag: 'aarch64'
+            <<: *master
+            <<: *storperf-arm-receivers
+        - 'storperf-graphite':
+            project: 'storperf'
+            dockerdir: 'docker/storperf-graphite'
+            dockerfile: 'Dockerfile'
+            docker_repo_name: 'opnfv/storperf-graphite'
+            arch_tag: 'aarch64'
+            <<: *master
+            <<: *storperf-arm-receivers
+        - 'storperf-httpfrontend':
+            project: 'storperf'
+            dockerdir: 'docker/storperf-httpfrontend'
+            dockerfile: 'Dockerfile'
+            docker_repo_name: 'opnfv/storperf-httpfrontend'
+            arch_tag: 'aarch64'
+            <<: *master
+            <<: *storperf-arm-receivers
+        - 'storperf-reporting':
+            project: 'storperf'
+            dockerdir: 'docker/storperf-reporting'
+            dockerfile: 'Dockerfile'
+            docker_repo_name: 'opnfv/storperf-reporting'
+            arch_tag: 'aarch64'
+            <<: *master
+            <<: *storperf-arm-receivers
+        - 'storperf-swaggerui':
+            project: 'storperf'
+            dockerdir: 'docker/storperf-swaggerui'
+            dockerfile: 'Dockerfile'
+            docker_repo_name: 'opnfv/storperf-swaggerui'
+            arch_tag: 'aarch64'
+            <<: *master
+            <<: *storperf-arm-receivers
         - 'yardstick':
+            project: 'yardstick'
             <<: *master
             <<: *yardstick-arm-receivers
         # projects with jobs for stable
 
     jobs:
-        - '{project}-docker-build-arm-push-{stream}'
+        - '{dockerrepo}-docker-build-arm-push-{stream}'
 
 ########################
 # job templates
 ########################
 - job-template:
-    name: '{project}-docker-build-arm-push-{stream}'
+    name: '{dockerrepo}-docker-build-arm-push-{stream}'
 
     disabled: '{obj:disabled}'
 
             description: "Directory containing files needed by the Dockerfile"
         - string:
             name: DOCKERFILE
-            default: "Dockerfile.aarch64"
+            default: "{dockerfile}"
             description: "Dockerfile to use for creating the image."
+        - string:
+            name: ARCH_TAG
+            default: "{arch_tag}"
+            description: "If set, this value will be added to the docker image tag"
 
     scm:
         - git-scm
index 0de3df2..6ca8e37 100644 (file)
@@ -89,11 +89,18 @@ if [[ -n "${COMMIT_ID-}" && -n "${RELEASE_VERSION-}" ]]; then
     BUILD_BRANCH=$COMMIT_ID
 fi
 
+ARCH_BUILD_ARG=""
+if [[ -n "${ARCH_TAG}" ]]; then
+    DOCKER_TAG=${ARCH_TAG}-${DOCKER_TAG}
+    ARCH_BUILD_ARG="--build-arg ARCH=${ARCH_TAG}"
+fi
+
 # Start the build
 echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
 echo "--------------------------------------------------------"
 echo
 cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BUILD_BRANCH
+    $ARCH_BUILD_ARG
     -f $DOCKERFILE ."
 
 echo ${cmd}
index 5b63f3a..6495915 100644 (file)
             cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
             yaohelan@huawei.com helanyao@gmail.com
             juha.kosonen@nokia.com
+    storperf-receivers: &storperf-receivers
+        receivers: >
+            mark.beierl@emc.com
     other-receivers: &other-receivers
         receivers: ''
 
     dockerfile: "Dockerfile"
     dockerdir: "docker"
+    arch_tag: ""
 
     # This is the dockerhub repo the image will be pushed to as
     # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
         - 'storperf-master':
             project: 'storperf'
             dockerdir: 'docker/storperf-master'
+            arch_tag: 'x86_64'
             <<: *master
-            <<: *other-receivers
+            <<: *storperf-receivers
         - 'storperf-graphite':
             project: 'storperf'
             dockerdir: 'docker/storperf-graphite'
+            arch_tag: 'x86_64'
             <<: *master
-            <<: *other-receivers
+            <<: *storperf-receivers
         - 'storperf-httpfrontend':
             project: 'storperf'
             dockerdir: 'docker/storperf-httpfrontend'
+            arch_tag: 'x86_64'
             <<: *master
-            <<: *other-receivers
+            <<: *storperf-receivers
         - 'storperf-reporting':
             project: 'storperf'
             dockerdir: 'docker/storperf-reporting'
+            arch_tag: 'x86_64'
             <<: *master
-            <<: *other-receivers
+            <<: *storperf-receivers
         - 'storperf-swaggerui':
             project: 'storperf'
             dockerdir: 'docker/storperf-swaggerui'
+            arch_tag: 'x86_64'
             <<: *master
-            <<: *other-receivers
+            <<: *storperf-receivers
         - 'yardstick':
             project: 'yardstick'
             <<: *master
 
     dockerfile: "Dockerfile"
     dockerdir: "docker"
+    arch_tag: ""
 
     project:
         # projects with jobs for master
             name: DOCKERFILE
             default: "{dockerfile}"
             description: "Dockerfile to use for creating the image."
+        - string:
+            name: ARCH_TAG
+            default: "{arch_tag}"
+            description: "If set, this value will be added to the docker image tag as a prefix"
 
     scm:
         - git-scm