From 61ad9514c25204476e830f0f991323c1aee04c26 Mon Sep 17 00:00:00 2001 From: Lasse Kaihlavirta Date: Wed, 9 Dec 2020 16:30:49 +0200 Subject: [PATCH] Add verification jobs for ccsdk/distribution - replace existing CCSDK CSIT jobs with project-specific CSIT job - add docker snapshot and docker staging jobs - snapshot images are still being done with maven, but tagging the images with STAGING is moved from maven to plain shell script (both of these have been implemented in https://gerrit.onap.org/r/c/ccsdk/distribution/+/116082) - add maven docker snapshot job template to support UNIQUE_DOCKER_TAG - note that this commit requires https://gerrit.onap.org/r/c/ccsdk/distribution/+/116082 to work properly in review and merge verification phases! - note also that this is not final commit related to this change as the maven docker template is still named with -PoC postfix and original artifact builds still remain triggered by review separately (the latter should be ultimately replaced by or included in review and merge verification jobs) Issue-ID: CCSDK-3018, CCSDK-3019 Signed-off-by: Lasse Kaihlavirta Change-Id: Id4c922e180c9d0ddadae6c99632d6ff6cdcbb59f --- jjb/ccsdk/ccsdk-csit.yaml | 19 +-- jjb/ccsdk/distribution.yaml | 10 ++ jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh | 8 ++ jjb/integration/integration-maven-jobs.yaml | 140 +++++++++++++++++++++ 4 files changed, 170 insertions(+), 7 deletions(-) create mode 100755 jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh create mode 100644 jjb/integration/integration-maven-jobs.yaml diff --git a/jjb/ccsdk/ccsdk-csit.yaml b/jjb/ccsdk/ccsdk-csit.yaml index 676d2f57d..ecabee04f 100644 --- a/jjb/ccsdk/ccsdk-csit.yaml +++ b/jjb/ccsdk/ccsdk-csit.yaml @@ -1,17 +1,22 @@ --- - project: - name: ccsdk-csit + name: ccsdk-distribution-csit jobs: - - '{project-name}-{stream}-verify-csit-{functionality}' - - '{project-name}-{stream}-csit-{functionality}' - project-name: 'ccsdk' + - '{project-name}-{stream}-project-csit' + - '{project-name}-review-verification-{stream}' + - '{project-name}-merge-verification-{stream}' + project-name: 'ccsdk-distribution' recipients: 'dtimoney@att.com' + # project name in gerrit + project: 'ccsdk/distribution' stream: - 'master': branch: 'master' - functionality: - - 'healthcheck': - trigger_jobs: + artifact-type: 'maven' + java-version: openjdk11 + mvn-version: 'mvn36' + mvn-settings: 'ccsdk-distribution-settings' + mvn-global-settings: global-settings robot-options: '' branch: 'master' diff --git a/jjb/ccsdk/distribution.yaml b/jjb/ccsdk/distribution.yaml index a64443527..6f0c160f0 100644 --- a/jjb/ccsdk/distribution.yaml +++ b/jjb/ccsdk/distribution.yaml @@ -20,6 +20,16 @@ cron: '@daily' - '{project-name}-gerrit-release-jobs': build-node: centos7-docker-8c-8g + - gerrit-maven-docker-snapshot-PoC: + build-node: ubuntu1804-docker-8c-8g + container-public-registry: 'nexus3.onap.org:10001' + container-snapshot-registry: 'nexus3.onap.org:10003' + mvn-params: '-Dmaven.test.skip=true -P docker' + maven-versions-plugin: true + - '{project-name}-{stream}-docker-staging': + script: + !include-raw-escape: 'tag-ccsdk-distribution-images-staging.sh' + project: 'ccsdk/distribution' stream: - 'master': diff --git a/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh b/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh new file mode 100755 index 000000000..b965cfe7d --- /dev/null +++ b/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo '=========== CALLING SCRIPT TO TAG DOCKER IMAGES AS STAGING ===========' +echo "=========== Unique docker tag: ${UNIQUE_DOCKER_TAG}" + +chmod 755 ./deployment/*.sh +cd ./deployment +./tag-docker-staging.sh diff --git a/jjb/integration/integration-maven-jobs.yaml b/jjb/integration/integration-maven-jobs.yaml new file mode 100644 index 000000000..5c7a50391 --- /dev/null +++ b/jjb/integration/integration-maven-jobs.yaml @@ -0,0 +1,140 @@ +- integration_maven_common: &integration_maven_common + name: integration-maven-common + + ###################### + # Default parameters # + ###################### + + archive-artifacts: > + **/*.log + **/hs_err_*.log + **/target/**/feature.xml + **/target/failsafe-reports/failsafe-summary.xml + **/target/surefire-reports/*-output.txt + + ##################### + # Job Configuration # + ##################### + + project-type: freestyle + node: "{build-node}" + + properties: + - lf-infra-properties: + build-days-to-keep: "{build-days-to-keep}" + + parameters: + - lf-infra-parameters: + project: "{project}" + branch: "{branch}" + stream: "{stream}" + - lf-infra-maven-parameters: + mvn-opts: "{mvn-opts}" + mvn-params: "{mvn-params}" + mvn-version: "{mvn-version}" + - string: + name: ARCHIVE_ARTIFACTS + default: "{archive-artifacts}" + description: Artifacts to archive to the logs server. + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: "{jenkins-ssh-credential}" + git-url: "{git-url}" + refspec: "$GERRIT_REFSPEC" + branch: "$GERRIT_BRANCH" + submodule-recursive: "{submodule-recursive}" + submodule-timeout: "{submodule-timeout}" + submodule-disable: "{submodule-disable}" + choosing-strategy: default + + wrappers: + - lf-infra-wrappers: + build-timeout: "{build-timeout}" + jenkins-ssh-credential: "{jenkins-ssh-credential}" + + publishers: + - lf-infra-publish + +############################# +# Maven Snapshot for Docker # +############################# + +- integration_maven_docker_snapshot: &integration_maven_docker_snapshot + name: integration-maven-docker-snapshot + + builders: + - lf-infra-pre-build + - lf-jacoco-nojava-workaround + - lf-maven-install: + mvn-version: "{mvn-version}" + - lf-update-java-alternatives: + java-version: "{java-version}" + - lf-infra-docker-login: + global-settings-file: "{mvn-global-settings}" + settings-file: "{mvn-settings}" + # must provide maven settings AFTER docker-login due to its cleanup + - lf-provide-maven-settings: + global-settings-file: "{mvn-global-settings}" + settings-file: "{mvn-settings}" + - lf-maven-versions-plugin: + maven-versions-plugin: "{maven-versions-plugin}" + version-properties-file: "{version-properties-file}" + mvn-version: "{mvn-version}" + mvn-pom: "{mvn-pom}" + mvn-settings: "{mvn-settings}" + - inject: + properties-content: | + CONTAINER_PULL_REGISTRY={container-public-registry} + CONTAINER_PUSH_REGISTRY={container-snapshot-registry} + - lf-maven-build: + mvn-goals: "{mvn-goals}" + - lf-sigul-sign-dir: + sign-artifacts: "{sign-artifacts}" + sign-dir: "$WORKSPACE/m2repo" + sign-mode: "{sign-mode}" + - lf-provide-maven-settings-cleanup + +- job-template: + name: "{project-name}-{stream}-maven-docker-snapshot" + id: gerrit-maven-docker-snapshot-PoC + <<: *integration_maven_common + # yamllint disable-line rule:key-duplicates + <<: *integration_maven_docker_snapshot + + ###################### + # Default parameters # + ###################### + + branch: master + build-days-to-keep: 30 # 30 days in case a release takes long to get approved. + build-timeout: 60 + disable-job: false + git-url: "$GIT_URL/$PROJECT" + github-url: "https://github.com" + java-version: openjdk8 + maven-versions-plugin: false + version-properties-file: version.properties + mvn-central: false + mvn-global-settings: global-settings + mvn-goals: clean deploy + mvn-opts: "" + mvn-params: "" + mvn-version: mvn35 + ossrh-profile-id: "" + mvn-pom: "" + sign-artifacts: false + sign-mode: serial + stream: master + submodule-recursive: true + submodule-timeout: 10 + submodule-disable: false + + parameters: + - infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + - integration-unique-docker-tag: + unique-docker-tag: '' -- 2.16.6