Refactor verification job templates 42/117342/1
authorLasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Tue, 2 Feb 2021 10:07:02 +0000 (12:07 +0200)
committerLasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Tue, 2 Feb 2021 10:07:02 +0000 (12:07 +0200)
 - extract common verification boilerplate definitions and default
   parameters and refer to them in review and merge verification jobs
 - remove unnecessary parameters from templates and from cssdk-csit

Issue-ID: INT-1823, INT-1833
Signed-off-by: Lasse Kaihlavirta <l.kaihlavirt@partner.samsung.com>
Change-Id: I63367216504b997acccd863bad0a2b7de3fc7480

jjb/ccsdk/ccsdk-csit.yaml
jjb/integration/integration-templates-csit.yaml

index 5f3b2cd..fc634fd 100644 (file)
@@ -3,18 +3,11 @@
     name: ccsdk-distribution-csit
     jobs:
       - '{project-name}-review-verification-maven-{stream}':
-          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 -Ddocker.skip.push=true -P docker'
           maven-versions-plugin: true
       - '{project-name}-merge-verification-maven-{stream}':
-          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 -Ddocker.skip.push=true -P docker'
           maven-versions-plugin: true
-
     project-name: 'ccsdk-distribution'
     recipients: 'dtimoney@att.com'
     # project name in gerrit
     stream:
       - 'master':
           branch: 'master'
-    java-version: openjdk11
-    mvn-version: 'mvn36'
     mvn-settings: 'ccsdk-distribution-settings'
-    mvn-global-settings: global-settings
     robot-options: ''
     branch: 'master'
 
index 31abe0d..be74858 100644 (file)
           notify-every-unstable-build: false
           send-to-individuals: true
 
-- job-template:
-    # Job template for unified review verification jobs in
-    # project-specific CSIT flow for projects built with maven
-    #
-    # The purpose of this job template is to:
-    #  1. build local snapshot docker images with maven
-    #  2. run CSIT job with the local images
-    #  3. give a verify vote to the triggering review
-    #
-
-    name: '{project-name}-review-verification-maven-{stream}'
+- verification_maven_job_boiler_plate: &verification_maven_job_boiler_plate
+    name: verification_maven_job_boiler_plate
 
     ######################
     # Default parameters #
 
     branch: master
     build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
+    build-node: ubuntu1804-docker-8c-8g
     build-timeout: 60
-    disable-job: false
+    container-public-registry: 'nexus3.onap.org:10001'
     git-url: "$GIT_URL/$PROJECT"
     github-url: "https://github.com"
     maven-versions-plugin: false
     mvn-global-settings: global-settings
     mvn-goals: clean deploy
     mvn-opts: ""
-    mvn-params: ""
-    maven-version: mvn36
-    ossrh-profile-id: ""
     mvn-pom: ""
+    mvn-version: mvn36
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
     node: '{build-node}'
     java-version: 'openjdk11'
 
+    #####################
+    # Job Configuration #
+    #####################
+
     properties:
       - lf-infra-properties:
           project: '{project}'
           mvn-opts: "{mvn-opts}"
           mvn-params: "{mvn-params}"
           mvn-version: "{mvn-version}"
-      - maven-exec:
-          maven-version: '{maven-version}'
-      - maven-params:
-          mvn-params: '{mvn-params}'
       - string:
           name: ARCHIVE_ARTIFACTS
           default: "{archive-artifacts}"
           description: Artifacts to archive to the logs server.
       - integration-test-options:
           test-options: '{robot-options}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
-
     wrappers:
       - lf-infra-wrappers:
           build-timeout: '{build-timeout}'
       - inject:
           properties-content: |
             CONTAINER_PULL_REGISTRY={container-public-registry}
-            CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
       - lf-maven-build:
           mvn-goals: "{mvn-goals}"
       - integration-install-robotframework
           properties-file: 'env.properties'
       - integration-run-project-test
       - lf-provide-maven-settings-cleanup
+    publishers:
+      - lf-infra-publish
+
+- job-template:
+    # Job template for unified review verification jobs in
+    # project-specific CSIT flow for projects built with maven
+    #
+    # The purpose of this job template is to:
+    #  1. build local snapshot docker images with maven
+    #  2. run CSIT job with the local images
+    #  3. give a verify vote to the triggering review
+    #
+
+    name: '{project-name}-review-verification-maven-{stream}'
 
+    <<: *verification_maven_job_boiler_plate
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+          submodule-recursive: '{submodule-recursive}'
     triggers:
       - gerrit-trigger-patch-submitted:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
           files: '**'
-    publishers:
-      - lf-infra-publish
 
 - job-template:
     # Job template for unified merge verification jobs in
 
     name: '{project-name}-merge-verification-maven-{stream}'
 
-    ######################
-    # 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"
-    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: ""
-    maven-version: mvn36
-    ossrh-profile-id: ""
-    mvn-pom: ""
-    sign-artifacts: false
-    sign-mode: serial
-    stream: master
-    submodule-recursive: true
-    submodule-timeout: 10
-    submodule-disable: false
-
-    disabled: '{disabled}'
-    archive-artifacts: >
-      **/*.log
-      **/hs_err_*.log
-      **/target/**/feature.xml
-      **/target/failsafe-reports/failsafe-summary.xml
-      **/target/surefire-reports/*-output.txt
-    project-type: freestyle
-    node: '{build-node}'
-    java-version: 'openjdk11'
-
-    properties:
-      - lf-infra-properties:
-          project: '{project}'
-          build-days-to-keep: '{build-days-to-keep}'
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - lf-infra-maven-parameters:
-          mvn-opts: "{mvn-opts}"
-          mvn-params: "{mvn-params}"
-          mvn-version: "{mvn-version}"
-      - maven-exec:
-          maven-version: '{maven-version}'
-      - maven-params:
-          mvn-params: '{mvn-params}'
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: "{archive-artifacts}"
-          description: Artifacts to archive to the logs server.
-      - integration-test-options:
-          test-options: '{robot-options}'
+    <<: *verification_maven_job_boiler_plate
 
     scm:
       - gerrit-trigger-scm:
           refspec: ''
           choosing-strategy: 'default'
           submodule-recursive: '{submodule-recursive}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-    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}"
-      - integration-install-robotframework
-      - inject:
-          properties-file: 'env.properties'
-      - integration-run-project-test
-      - lf-provide-maven-settings-cleanup
-
     triggers:
       - gerrit-trigger-patch-merged:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
           files: '**'
-    publishers:
-      - lf-infra-publish