From 354f428724ea9c9e114e0e389d711205335ab9f4 Mon Sep 17 00:00:00 2001 From: Davlet Panech Date: Fri, 19 Aug 2022 10:25:08 -0400 Subject: [PATCH] New parameter BUILD_DOCKER_BASE_IMAGE Story: 2010226 Task: 46050 Signed-off-by: Davlet Panech Change-Id: I4bf59ed34e24687831db3ae87aa2b126ed0c4003 --- pipelines/monolithic.Jenkinsfile | 43 ++++++++++++------- .../parts/build-docker-images.Jenkinsfile | 3 ++ scripts/build-docker-images.sh | 26 +++++------ 3 files changed, 44 insertions(+), 28 deletions(-) diff --git a/pipelines/monolithic.Jenkinsfile b/pipelines/monolithic.Jenkinsfile index 59a9ba0..c6c85aa 100644 --- a/pipelines/monolithic.Jenkinsfile +++ b/pipelines/monolithic.Jenkinsfile @@ -139,12 +139,15 @@ pipeline { booleanParam ( name: 'FORCE_BUILD_WHEELS' ) - string ( - name: 'DOCKER_IMAGE_LIST' + booleanParam ( + name: 'BUILD_DOCKER_BASE_IMAGE' ) booleanParam ( name: 'BUILD_DOCKER_IMAGES' ) + string ( + name: 'DOCKER_IMAGE_LIST' + ) booleanParam ( name: 'PUSH_DOCKER_IMAGES' ) @@ -213,22 +216,30 @@ pipeline { } } // stage('ISO') stage('IMAGES') { - when { expression { params.BUILD_DOCKER_IMAGES } } + when { expression { params.BUILD_DOCKER_BASE_IMAGE || params.BUILD_DOCKER_IMAGES } } stages { - stage('IMAGES:wheels') { steps { script { - runPart ("build-wheels", IMG_PARAMS) - runPart ("publish-wheels", IMG_PARAMS) - } } } - stage('IMAGES:base') { steps { script { - runPart ("build-docker-base", IMG_PARAMS) - runPart ("build-docker-images", IMG_PARAMS) - } } } - stage('IMAGES:images') { steps { script { - runPart ("build-docker-images", IMG_PARAMS) - runPart ("publish-docker-images", IMG_PARAMS) - } } } + stage('IMAGES:base') { + when { expression { params.BUILD_DOCKER_BASE_IMAGE } } + steps { script { + runPart ("build-docker-base", IMG_PARAMS) + } } + } + stage('IMAGES:wheels') { + when { expression { params.BUILD_DOCKER_IMAGES } } + steps { script { + runPart ("build-wheels", IMG_PARAMS) + runPart ("publish-wheels", IMG_PARAMS) + } } + } + stage('IMAGES:images') { + when { expression { params.BUILD_DOCKER_IMAGES } } + steps { script { + runPart ("build-docker-images", IMG_PARAMS) + runPart ("publish-docker-images", IMG_PARAMS) + } } + } stage('IMAGES:helm') { - when { expression { params.BUILD_HELM_CHARTS } } + when { expression { params.BUILD_DOCKER_IMAGES && params.BUILD_HELM_CHARTS } } steps { script { runPart ("build-helm-charts", IMG_PARAMS) runPart ("publish-helm-charts", IMG_PARAMS) diff --git a/pipelines/parts/build-docker-images.Jenkinsfile b/pipelines/parts/build-docker-images.Jenkinsfile index 4d09fae..17680d6 100644 --- a/pipelines/parts/build-docker-images.Jenkinsfile +++ b/pipelines/parts/build-docker-images.Jenkinsfile @@ -43,6 +43,9 @@ pipeline { string ( name: 'BUILD_STREAM' ) + booleanParam ( + name: 'BUILD_DOCKER_BASE_IMAGE' + ) string ( name: 'DOCKER_IMAGE_LIST' ) diff --git a/scripts/build-docker-images.sh b/scripts/build-docker-images.sh index e25d615..b408bff 100755 --- a/scripts/build-docker-images.sh +++ b/scripts/build-docker-images.sh @@ -12,10 +12,11 @@ source $(dirname "$0")/lib/job_utils.sh require_env BUILD_HOME require_env DRY_RUN require_env USE_DOCKER_CACHE +require_env BUILD_DOCKER_BASE_IMAGE require_env BUILD_STREAM stable require_env PUSH_DOCKER_IMAGES declare_env DOCKER_IMAGE_LIST -declare_env DOCKER_IMAGE_BASE +declare_env DOCKER_BASE_IMAGE load_build_env @@ -24,21 +25,10 @@ wheels_file="std/build-wheels-$DOCKER_BASE_OS-$BUILD_STREAM/stx-$DOCKER_BASE_OS- #require_file "$HOST_WORKSPACE/$wheels_file" -if [[ -n "$DOCKER_IMAGE_BASE" ]] ; then - base_img="$DOCKER_IMAGE_BASE" -else - base_image_tag="$BUILD_BRANCH-$BUILD_STREAM-$TIMESTAMP" - base_img="$DOCKER_REGISTRY_ORG/stx-$DOCKER_BASE_OS:$base_image_tag" - if [[ -n "$DOCKER_REGISTRY" ]] ; then - base_img="$DOCKER_REGISTRY/$base_img" - fi -fi - declare -a cmd=( "./build-stx-images.sh" "--attempts=$DOCKER_BUILD_RETRY_COUNT" "--stream=$BUILD_STREAM" - "--base=$base_img" "--no-pull-base" "--version=$TIMESTAMP" "--prefix=$BUILD_BRANCH" @@ -46,6 +36,18 @@ declare -a cmd=( "--latest" ) +# Base image provided by build parameter +if [[ -n "$DOCKER_BASE_IMAGE" ]] ; then + cmd+=("--base=$DOCKER_BASE_IMAGE") +elif $BUILD_DOCKER_BASE_IMAGE ; then + base_image_tag="$BUILD_BRANCH-$BUILD_STREAM-$TIMESTAMP" + docker_base_image="$DOCKER_REGISTRY_ORG/stx-$DOCKER_BASE_OS:$base_image_tag" + if [[ -n "$DOCKER_REGISTRY" ]] ; then + docker_base_image="$DOCKER_REGISTRY/$docker_base_image" + fi + cmd+=("--base=$docker_base_image") +fi + if [[ -n "$DOCKER_REGISTRY" ]] ; then cmd+=("--registry=$DOCKER_REGISTRY") fi