From 128168dcb011258a41372f0c31aea3f6c9b0e5b3 Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Mon, 17 Jul 2023 12:48:40 -0700 Subject: [PATCH] Fix: Remove local deprecated docker template The local docker build and merge jobs are deprecated and projects should use global-jjb templates instead. Having the old template was creating confusion in jjb 5.0.2 where scripts were getting mixed. Is best to remove the old deprecated template. aai-common is migrated too to use the new template. Issue-ID: CIMAN-33 Signed-off-by: Jessica Wagantall Change-Id: I7d1cb277964636ea11cfceccf511ad2dc992dca3 --- jjb/aai/aai-aai-common.yaml | 10 +- jjb/global-templates-docker.yaml | 302 --------------------------------------- shell/docker-build.sh | 41 ------ shell/docker-push.sh | 7 - 4 files changed, 5 insertions(+), 355 deletions(-) delete mode 100644 jjb/global-templates-docker.yaml delete mode 100644 shell/docker-build.sh delete mode 100644 shell/docker-push.sh diff --git a/jjb/aai/aai-aai-common.yaml b/jjb/aai/aai-aai-common.yaml index a068a44c8..280972a68 100644 --- a/jjb/aai/aai-aai-common.yaml +++ b/jjb/aai/aai-aai-common.yaml @@ -84,8 +84,8 @@ - project: name: "aai-aai-common-docker" jobs: - - "{project-name}-{stream}-verify-docker" - - "{project-name}-{stream}-merge-docker" + - gerrit-docker-verify + - gerrit-docker-merge - gerrit-maven-docker-stage: sbom-generator: true mvn-params: "-P docker -Dmaven.test.skip=true" @@ -107,9 +107,9 @@ branch: "kohn" distro: "alpine" mvn-params: "-P spring-boot-2-1,docker" - docker_name: "onap/aai-common-{distro}" - docker_build_args: "-f ./Dockerfile.{distro}" - docker_root: "$WORKSPACE/Dockerfiles/aai-common/" + docker-name: "onap/aai-common-{distro}" + docker-build-args: "-f ./Dockerfile.{distro}" + docker-root: "$WORKSPACE/Dockerfiles/aai-common/" mvn-settings: "aai-aai-common-settings" mvn-version: "mvn35" files: "Dockerfiles/aai-common/**" diff --git a/jjb/global-templates-docker.yaml b/jjb/global-templates-docker.yaml deleted file mode 100644 index a58467468..000000000 --- a/jjb/global-templates-docker.yaml +++ /dev/null @@ -1,302 +0,0 @@ ---- -########### -# ANCHORS # -########### -- _docker_job_boiler_plate: &docker_job_boiler_plate - name: docker_job_boiler_plate - - project-type: freestyle - node: "{build-node}" - - ###################### - # Default parameters # - ###################### - - branch: master - submodule-recursive: true - - # default params for docker jobs - pre_build_script: "" - post_build_script: "" - docker_root: "$WORKSPACE" - docker_build_args: "" - docker_name: "unnamed" - # Default to LF standard 'snapshots' docker registry - docker_registry: "$DOCKER_REGISTRY:10003" - docker_tag: "latest" - submodule-disable: false - submodule-timeout: 10 - - ##################### - # Job Configuration # - ##################### - - properties: - - lf-infra-properties: - build-days-to-keep: "{build-days-to-keep}" - - parameters: - - lf-infra-parameters: - branch: "{branch}" - project: "{project}" - stream: "{stream}" - lftools-version: "{lftools-version}" - - wrappers: - - lf-infra-wrappers: - build-timeout: "{build-timeout}" - jenkins-ssh-credential: "{jenkins-ssh-credential}" - - publishers: - - lf-infra-publish - -- _docker_verify_boiler_plate: &docker_verify_boiler_plate - name: docker_verify_boiler_plate - - concurrent: true - - scm: - - gerrit-trigger-scm: - refspec: "$GERRIT_REFSPEC" - choosing-strategy: "default" - submodule-recursive: "{submodule-recursive}" - - triggers: - - gerrit-trigger-patch-submitted: - status-context: "{project}-Docker-Verify" - server: "{server-name}" - project: "{project}" - branch: "{branch}" - files: "{files}" - -- _docker_merge_boiler_plate: &docker_merge_boiler_plate - name: docker_merge_boiler_plate - - scm: - - gerrit-trigger-scm: - refspec: "$GERRIT_REFSPEC" - choosing-strategy: "default" - submodule-recursive: "{submodule-recursive}" - - triggers: - - gerrit-trigger-patch-merged: - server: "{server-name}" - project: "{project}" - branch: "{branch}" - files: "{files}" - - pollscm: - cron: "" - -################# -# JOB TEMPLATES # -################# -- job-template: - name: "{project-name}-{stream}-merge-docker" - # Job template for Docker merge jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_merge_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: "global-settings" - settings-file: "{mvn-settings}" - - shell: "{pre_build_script}" - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: "env_inject.txt" - # Execute any post build clean-up or testing - - shell: "{post_build_script}" - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - -- job-template: - name: "{project-name}-{stream}-verify-docker" - # Job template for Docker verify jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - ###################### - # Default parameters # - ###################### - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_verify_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: "global-settings" - settings-file: "{mvn-settings}" - - shell: "{pre_build_script}" - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: "env_inject.txt" - # Execute any post build clean-up or testing - - shell: "{post_build_script}" - -- job-template: - # Job template for creating a docker manifest list - # - # The purpose of this job template is to run: - # 1. docker_push_manifest.sh script (which needs to exist in the - # project implementation repo) - - name: "{project-name}-docker-manifest-{stream}" - <<: *docker_job_boiler_plate - node: "{build-node}" - build-timeout: 15 - - parameters: - - lf-infra-parameters: - project: "{project}" - stream: "{stream}" - branch: "{branch}" - - string: - name: PARENT_JOB_NAME - default: "none" - - disabled: "{obj:disabled}" - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: "{jenkins-ssh-credential}" - git-url: "$GIT_URL/$PROJECT" - refspec: "$GERRIT_REFSPEC" - branch: "$GERRIT_BRANCH" - submodule-recursive: true - submodule-disable: "{submodule-disable}" - submodule-timeout: "{submodule-timeout}" - choosing-strategy: default - - builders: - - lf-infra-docker-login: - global-settings-file: "global-settings" - settings-file: "{mvn-settings}" - - shell: | - #!/bin/bash -ex - export PARENT_JOB_NAME - ./docker_push_manifest.sh - -- job-template: - # Job template for staging jobs on multiple architectures - # - # The purpose of this job template is to: - # 1. Run parallel maven-docker-stage jobs for each supported architecure - # 2. Build and push a docker manifest list for the images created by - # the previous jobs - - name: "{project-name}-multiarch-docker-stage-{stream}" - node: "{build-node}" - project-type: multijob - disabled: "{obj:disabled}" - build-timeout: 15 - pattern: "**" - - parameters: - - lf-infra-parameters: - project: "{project}" - stream: "{stream}" - branch: "{branch}" - - string: - name: DOCKER_REGISTRY - default: "none" - - string: - name: DOCKERHUB_REGISTRY - default: "registry-1.docker.io" - - properties: - - throttle: - max-per-node: 1 - option: "project" - - build-blocker: - use-build-blocker: true - blocking-jobs: - - "{project-name}-.*-docker-.*" - blocking-level: "NODE" - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: "{jenkins-ssh-credential}" - git-url: "$GIT_URL/$PROJECT" - refspec: "$GERRIT_REFSPEC" - branch: "$GERRIT_BRANCH" - submodule-recursive: true - submodule-timeout: 10 - submodule-disable: false - choosing-strategy: default - - triggers: - - timed: "@daily" - - gerrit: - server-name: "{gerrit-server-name}" - trigger-on: - - comment-added-contains-event: - comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$' - - projects: - - project-compare-type: ANT - project-pattern: "{project}" - branches: - - branch-compare-type: ANT - branch-pattern: "**/{branch}" - file-paths: - - compare-type: ANT - pattern: "**" - - builders: - - multijob: - name: "build docker images" - condition: ALWAYS - execution-type: PARALLEL - projects: - - name: "{project-name}-amd64-maven-docker-stage-{stream}" - kill-phase-on: FAILURE - current-parameters: true - - name: "{project-name}-arm64-maven-docker-stage-{stream}" - kill-phase-on: NEVER - current-parameters: true - - multijob: - name: "publish docker manifest" - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: "{project-name}-docker-manifest-{stream}" - current-parameters: true - predefined-parameters: | - PARENT_JOB_NAME=$JOB_NAME - DOCKERHUB_REGISTRY=docker.io - - publishers: - - lf-infra-publish diff --git a/shell/docker-build.sh b/shell/docker-build.sh deleted file mode 100644 index 1cb71d3ff..000000000 --- a/shell/docker-build.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Ensure we fail the job if any steps fail -# Do not set -u as DOCKER_ARGS may be unbound -set -e -o pipefail - -FULL_DATE=`date +'%Y%m%dT%H%M%S'` -IMAGE_VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" pom.xml | cut -c1-5` - -case "$BUILD_MODE" in - "STAGING") - DOCKER_TAG="$IMAGE_VERSION"-STAGING-"$FULL_DATE"Z - DOCKER_LATEST_TAG="$IMAGE_VERSION"-STAGING-latest - echo "Using tags $DOCKER_TAG and $DOCKER_LATEST_TAG" - ;; - "SNAPSHOT") - DOCKER_TAG="$IMAGE_VERSION"-SNAPSHOT-"$FULL_DATE"Z - DOCKER_LATEST_TAG="$IMAGE_VERSION"-SNAPSHOT-latest - echo "Using tags $DOCKER_TAG and $DOCKER_LATEST_TAG" - ;; -esac - -# Switch to the directory where the Dockerfile is -cd "$DOCKER_ROOT" - -# DOCKERREGISTRY is purposely not using an '_' so as to not conflict with the -# Jenkins global env var of the DOCKER_REGISTRY which the docker-login step uses -IMAGE_NAME="$DOCKERREGISTRY/$DOCKER_NAME:$DOCKER_TAG" -IMAGE_NAME_LATEST="$DOCKERREGISTRY/$DOCKER_NAME:$DOCKER_LATEST_TAG" - -# Build the docker image - -# Allow word splitting -# shellcheck disable=SC2086 -docker build $DOCKER_ARGS . -t $IMAGE_NAME -t $IMAGE_NAME_LATEST | tee "$WORKSPACE/docker_build_log.txt" - -# Write DOCKER_IMAGE information to a file so it can be injected into the -# environment for following steps -echo "DOCKER_IMAGE=$IMAGE_NAME" >> "$WORKSPACE/env_inject.txt" -echo "DOCKER_IMAGE_LATEST=$IMAGE_NAME_LATEST" >> "$WORKSPACE/env_inject.txt" - - diff --git a/shell/docker-push.sh b/shell/docker-push.sh deleted file mode 100644 index 937a01ab3..000000000 --- a/shell/docker-push.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# Ensure we fail the job if any steps fail -set -e -o pipefail - -# Push our image to wherever it's defined to go by the name -docker push "$DOCKER_IMAGE" -docker push "$DOCKER_IMAGE_LATEST" -- 2.16.6