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 <l.kaihlavirt@partner.samsung.com>
Change-Id: Id4c922e180c9d0ddadae6c99632d6ff6cdcbb59f
diff --git a/jjb/ccsdk/ccsdk-csit.yaml b/jjb/ccsdk/ccsdk-csit.yaml
index 676d2f5..ecabee0 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 a644435..6f0c160 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 0000000..b965cfe
--- /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 0000000..5c7a503
--- /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: ''