Fix: Remove local deprecated docker template 87/135487/3
authorJessica Wagantall <jwagantall@linuxfoundation.org>
Mon, 17 Jul 2023 19:48:40 +0000 (12:48 -0700)
committerJessica Wagantall <jwagantall@linuxfoundation.org>
Mon, 17 Jul 2023 19:59:43 +0000 (19:59 +0000)
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 <jwagantall@linuxfoundation.org>
Change-Id: I7d1cb277964636ea11cfceccf511ad2dc992dca3

jjb/aai/aai-aai-common.yaml
jjb/global-templates-docker.yaml [deleted file]
shell/docker-build.sh [deleted file]
shell/docker-push.sh [deleted file]

index a068a44..280972a 100644 (file)
@@ -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"
           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 (file)
index a584674..0000000
+++ /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 (file)
index 1cb71d3..0000000
+++ /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 (file)
index 937a01a..0000000
+++ /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"