X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-macros.yaml;h=8fb7afef5b973dcb9ededcc1214ddddbb99483f4;hb=3e2e5093f4613b0626201074d45a8837ae576030;hp=5815ccf53b7d32bdf626923930786e2d3a8791ed;hpb=7cac728e1f5ca46adc615a92667ca08f5d31c3ee;p=ci-management.git diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index 5815ccf53..8fb7afef5 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -4,91 +4,122 @@ # vim: sw=2 ts=2 sts=2 et : # BUILDERS -- builder: - name: ci-management-check-unicode - builders: - - shell: | - $WORKSPACE/scripts/check-unicode.sh jjb/ - - builder: name: provide-maven-settings builders: - config-file-provider: files: - - file-id: '{global-settings-file}' - variable: 'GLOBAL_SETTINGS_FILE' - - file-id: '{settings-file}' - variable: 'SETTINGS_FILE' + - file-id: "{global-settings-file}" + variable: "GLOBAL_SETTINGS_FILE" + - file-id: "{settings-file}" + variable: "SETTINGS_FILE" + +# call maven-target builder with a goal of --version to force Jenkins to +# install the needed maven version +- builder: + name: maven-install + builders: + - maven-target: + maven-version: "{maven-version}" + goals: "--version" + +- builder: + name: maven-set-release-version + builders: + - maven-target: + maven-version: "{maven-version}" + pom: "{pom}" + goals: "versions:set versions:update-child-modules versions:commit -B" + properties: + - "newVersion=${{release_version}}" + settings: "{mvn-settings}" + settings-type: cfp + global-settings: "global-settings" + global-settings-type: cfp - builder: name: maven-docker-push-release builders: - maven-target: - maven-version: 'mvn33' - pom: '{pom}' - goals: 'clean deploy -B' - settings: '{mvn-settings}' + maven-version: "{maven-version}" + pom: "{pom}" + goals: "clean deploy -B -P {mvn-profile}" + settings: "{mvn-settings}" settings-type: cfp - global-settings: 'global-settings' + global-settings: "global-settings" global-settings-type: cfp properties: - maven.test.skip=true - - docker.pull.registry=nexus3.openecomp.org:10001 - - docker.push.registry=nexus3.openecomp.org:10002 + - docker.pull.registry=nexus3.onap.org:10001 + - docker.push.registry=nexus3.onap.org:10002 - builder: name: maven-docker-push-daily builders: - maven-target: - maven-version: 'mvn33' - pom: '{pom}' - goals: 'clean deploy -B' - settings: '{mvn-settings}' + maven-version: "{maven-version}" + pom: "{pom}" + goals: "clean deploy -B -P {mvn-profile} {mvn-params}" + settings: "{mvn-settings}" settings-type: cfp - global-settings: 'global-settings' + global-settings: "global-settings" global-settings-type: cfp properties: - - maven.test.skip=true - - docker.pull.registry=nexus3.openecomp.org:10001 - - docker.push.registry=nexus3.openecomp.org:10003 + - docker.pull.registry=nexus3.onap.org:10001 + - docker.push.registry=nexus3.onap.org:10003 - builder: name: docker-login builders: - shell: !include-raw: include-docker-login.sh +- builder: + name: publish-pypi + builders: + - inject: + properties-content: PYPI_SERVER={pypi-server} + - shell: !include-raw-escape: ../shell/pypi-publish.sh + # PARAMETERS - parameter: - name: ecomp-infra-parameters + name: infra-parameters parameters: - string: name: PROJECT - default: '{project}' + default: "{project}" # yamllint disable rule:line-length - description: 'JJB configured PROJECT parameter to identify a Gerrit project' + description: "JJB configured PROJECT parameter to identify a Gerrit project" # yamllint enable - string: name: ARCHIVE_ARTIFACTS - default: '{artifacts} **/target/surefire-reports/*-output.txt' + default: "{artifacts} **/target/surefire-reports/*-output.txt" # yamllint disable rule:line-length - description: 'Space separated glob patterns for artifacts to archive to logs hosting' + description: "Space separated glob patterns for artifacts to archive to logs hosting" # yamllint enable - string: name: GERRIT_BRANCH - default: '{branch}' - description: 'JJB configured GERRIT_BRANCH parameter' + default: "{branch}" + description: "JJB configured GERRIT_BRANCH parameter" - string: name: GERRIT_PROJECT - default: '{project}' - description: 'GERRIT_PROJECT parameter if not given by trigger' + default: "{project}" + description: "GERRIT_PROJECT parameter if not given by trigger" - string: name: GERRIT_REFSPEC - default: '{refspec}' - description: 'GERRIT_REFSPEC parameter if not given by trigger' + default: "{refspec}" + description: "GERRIT_REFSPEC parameter if not given by trigger" - string: name: STACK_NAME - default: '$JOB_NAME-$BUILD_NUMBER' - description: 'Used by Heat to generate a unique stack & vm name' + default: "$JOB_NAME-$BUILD_NUMBER" + description: "Used by Heat to generate a unique stack & vm name" + +- parameter: + name: maven-params + parameters: + - string: + name: MAVEN_PARAMS + default: "{mvn-params}" + description: Maven parameters to pass to the mvn command. - parameter: name: maven-exec @@ -96,16 +127,26 @@ - string: name: MVN # yamllint disable rule:line-length - default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn' + default: "/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn" # yamllint enable - description: 'Maven selector to be used by shell scripts' + description: "Maven selector to be used by shell scripts" + +- parameter: + name: docker-image-name + parameters: + - string: + name: DOCKER_IMAGE_NAME + # yamllint disable rule:line-length + default: "{docker-image-name}" + # yamllint enable + description: "Docker image name, e.g. onap/appc" # PROPERTIES - property: - name: ecomp-infra-properties + name: infra-properties properties: - build-discarder: - days-to-keep: '{build-days-to-keep}' + days-to-keep: "{build-days-to-keep}" num-to-keep: 40 artifact-days-to-keep: -1 artifact-num-to-keep: 5 @@ -115,7 +156,7 @@ name: archive-artifacts publishers: - archive: - artifacts: '{artifacts}' + artifacts: "{artifacts}" allow-empty: true fingerprint: true latest-only: true @@ -124,11 +165,11 @@ name: email-notification publishers: - email-ext: - recipients: 'nobody@open-o.org' + recipients: "nobody@open-o.org" reply-to: content-type: default # yamllint disable rule:line-length - subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!' + subject: "{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!" # yamllint enable body: | $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS: @@ -144,11 +185,11 @@ name: jacoco-report publishers: - jacoco: - exec-pattern: '**/**.exec' - class-pattern: '**/classes' - source-pattern: '**/src/main/java' + exec-pattern: "**/**.exec" + class-pattern: "**/classes" + source-pattern: "**/src/main/java" # yamllint disable rule:line-length - exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**' + exclusion-pattern: "**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**" # yamllint enable status-update: true targets: @@ -160,46 +201,53 @@ unhealthy: 40 - publisher: - name: ecomp-infra-shiplogs - # To archive things, the job will need to create an "archives" directory in - # the workspace and this macro will handle copying the contents of the - # archives directory. - # - # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to - # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as - # the archive pattern. This is a space separated list of files to archive. - # - # Also ensure that the workspace is cleaned up at the end of the build. + name: checkstyle-result publishers: - - postbuildscript: - builders: - - shell: !include-raw: include-raw-deploy-archives.sh - - maven-target: - maven-version: '{maven-version}' - pom: '.archives/deploy-archives.xml' - goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r' - settings: 'jenkins-log-archives-settings' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - description-setter: - regexp: '^Build logs: .*' - script-only-if-succeeded: false - script-only-if-failed: false - mark-unstable-if-failed: true - - workspace-cleanup: - fail-build: false` + - checkstyle: + pattern: "**/checkstyle-result.xml" + healthy: 0 + unhealthy: 100 + health-threshold: "high" + thresholds: + unstable: + total-all: 30 + total-high: 15 + total-normal: 20 + total-low: 25 + new-all: 5 + new-high: 0 + new-normal: 2 + new-low: 5 + +- publisher: + name: checkstyle-result-daily + publishers: + - checkstyle: + pattern: "**/checkstyle-result.xml" + healthy: 0 + unhealthy: 100 + health-threshold: "high" + thresholds: + unstable: + total-all: 30 + total-high: 15 + total-normal: 20 + total-low: 25 + new-all: 1 + new-high: 0 + new-normal: 1 + new-low: 1 # SCMS - scm: name: git-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' - url: '$GIT_BASE' - refspec: '' + credentials-id: "onap-jenkins-ssh" + url: "$GIT_BASE" + refspec: "" branches: - - 'origin/{branch}' + - "origin/{branch}" skip-tag: true wipe-workspace: true timeout: 30 @@ -208,38 +256,40 @@ name: gerrit-trigger-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' - url: '$GIT_BASE' - refspec: '{refspec}' + credentials-id: "onap-jenkins-ssh" + url: "$GIT_BASE" + refspec: "{refspec}" branches: - - 'origin/$GERRIT_BRANCH' + - "origin/$GERRIT_BRANCH" skip-tag: true timeout: 30 - choosing-strategy: '{choosing-strategy}' + choosing-strategy: "{choosing-strategy}" + submodule: + recursive: "{submodule-recursive}" - scm: name: gerrit-trigger-scm-basedir scm: - git: - credentials-id: 'ecomp-jenkins-ssh' - url: '$GIT_BASE' - refspec: '{refspec}' + credentials-id: "onap-jenkins-ssh" + url: "$GIT_BASE" + refspec: "{refspec}" branches: - - 'origin/$GERRIT_BRANCH' + - "origin/$GERRIT_BRANCH" skip-tag: true timeout: 30 - choosing-strategy: '{choosing-strategy}' - basedir: '{basedir}' + choosing-strategy: "{choosing-strategy}" + basedir: "{basedir}" - scm: name: git-branch-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' - url: '$GIT_BASE' - refspec: '' + credentials-id: "onap-jenkins-ssh" + url: "$GIT_BASE" + refspec: "" branches: - - 'origin/{branch}' + - "origin/{branch}" skip-tag: true timeout: 30 wipe-workspace: true @@ -248,15 +298,15 @@ name: git-extra-project scm: - git: - credentials-id: 'ecomp-jenkins-ssh' - url: '$GIT_NO_PROJECT/{project}' - refspec: '{refspec}' + credentials-id: "onap-jenkins-ssh" + url: "$GIT_NO_PROJECT/{project}" + refspec: "{refspec}" branches: - - 'origin/{branch}' + - "origin/{branch}" skip-tag: true timeoute: 30 wipe-workspace: false - basedir: '{checkout-dir}' + basedir: "{checkout-dir}" # TRIGGERS @@ -273,43 +323,111 @@ name: gerrit-trigger-patch-submitted triggers: - gerrit: - server-name: '{server}' + server-name: "{server}" trigger-on: - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' + exclude-drafts: "false" + exclude-trivial-rebase: "false" + exclude-no-code-change: "false" - draft-published-event - comment-added-contains-event: - comment-contains-value: 'recheck' + comment-contains-value: "recheck" projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' + - project-compare-type: "ANT" + project-pattern: "{project}" branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' + - branch-compare-type: "ANT" + branch-pattern: "**/{branch}" file-paths: - - compare-type: 'ANT' - pattern: '{files}' + - compare-type: "ANT" + pattern: "{files}" - trigger: name: gerrit-trigger-patch-merged triggers: - gerrit: - server-name: '{server}' + server-name: "{server}" trigger-on: - change-merged-event - comment-added-contains-event: - comment-contains-value: 'remerge' + comment-contains-value: "remerge" projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' + - project-compare-type: "ANT" + project-pattern: "{project}" branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' + - branch-compare-type: "ANT" + branch-pattern: "**/{branch}" file-paths: - - compare-type: 'ANT' - pattern: '{files}' + - compare-type: "ANT" + pattern: "{files}" + +- trigger: + name: gerrit-trigger-helm-patch-submitted + triggers: + - gerrit: + server-name: "{server}" + trigger-on: + - patchset-created-event: + exclude-drafts: "false" + exclude-no-code-change: "false" + exclude-trivial-rebase: "false" + exclude-wip: "true" + - draft-published-event + - comment-added-contains-event: + comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify|verify-helm)\s*$' + projects: + - project-compare-type: "ANT" + project-pattern: "{project}" + branches: + - branch-compare-type: "ANT" + branch-pattern: "**/{branch}" + file-paths: + - compare-type: "ANT" + pattern: "{files}" + +- trigger: + name: gerrit-trigger-helm-patch-merged + triggers: + - gerrit: + server-name: "{server}" + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: "^remerge-helm$" + projects: + - project-compare-type: "ANT" + project-pattern: "{project}" + branches: + - branch-compare-type: "ANT" + branch-pattern: "**/{branch}" + file-paths: + - compare-type: "ANT" + pattern: "{files}" + +- trigger: + name: gerrit-trigger-release-manually + triggers: + - gerrit: + server-name: "{server}" + trigger-on: + - comment-added-contains-event: + comment-contains-value: "please release" + projects: + - project-compare-type: "ANT" + project-pattern: "{project}" + branches: + - branch-compare-type: "ANT" + branch-pattern: "**/{branch}" + file-paths: + - compare-type: "ANT" + pattern: "**" + +- trigger: + name: trigger-on-build-success + triggers: + - reverse: + jobs: "{job-name}" + result: "success" # WRAPPERS - wrapper: @@ -320,18 +438,72 @@ timeout: 360 fail: true +- wrapper: + name: golang110 + wrappers: + - raw: + xml: | + + Golang 1.10 + + +- wrapper: + name: golang111 + wrappers: + - raw: + xml: | + + Golang 1.11 + + +- wrapper: + name: golang112 + wrappers: + - raw: + xml: | + + Golang 1.12 + + +- wrapper: + name: golang114 + wrappers: + - raw: + xml: | + + Golang 1.14 + + - wrapper: # This wrapper is required for all jobs as it configures the wrappers # needed by the eCOMP infra. - name: ecomp-infra-wrappers + name: infra-wrappers wrappers: + - timestamps - timeout: type: absolute - timeout: '{build-timeout}' - timeout-var: 'BUILD_TIMEOUT' + timeout: "{build-timeout}" + timeout-var: "BUILD_TIMEOUT" fail: true - ssh-agent-credentials: users: - - 'ecomp-jenkins-ssh' + - "onap-jenkins-ssh" - openstack: single-use: true + +- wrapper: + # This wrapper is used for docker build jobs to use the dedicated docker + # build VM and turn off OpenStack single-use + name: infra-wrappers-docker-build + wrappers: + - timestamps + - timeout: + type: absolute + timeout: "{build-timeout}" + timeout-var: "BUILD_TIMEOUT" + fail: true + - ssh-agent-credentials: + users: + - "onap-jenkins-ssh" + - openstack: + single-use: false