X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-macros.yaml;h=abf7a83f36dc343296d3975d142e00ac7fa293e4;hb=386b7ba0f3deffcbcb6cc461275ef3eb3a5cbc89;hp=b324534a03250e750ffe22a05f9b8462f7460350;hpb=30a5c771056016686014cbde0fac0232b50f6371;p=ci-management.git diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index b324534a0..abf7a83f3 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -4,12 +4,6 @@ # 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: @@ -20,46 +14,77 @@ - 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-docker-push-release builders: - maven-target: - maven-version: 'mvn33' + maven-version: '{maven-version}' pom: '{pom}' - goals: 'clean deploy -B -P ${mvn-profile}' + goals: 'clean deploy -B -P {mvn-profile}' settings: '{mvn-settings}' settings-type: cfp 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' + maven-version: '{maven-version}' pom: '{pom}' - goals: 'clean deploy -B -P ${mvn-profile}' + goals: 'clean deploy -B -P {mvn-profile} {mvn-params}' settings: '{mvn-settings}' settings-type: cfp 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: maven-docker-push-daily-test + builders: + - maven-target: + 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-type: cfp + properties: + - 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 @@ -90,6 +115,14 @@ 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 parameters: @@ -100,9 +133,19 @@ # yamllint enable 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}' @@ -160,42 +203,78 @@ 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. + name: checkstyle-result + 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: 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 + +- publisher: + name: infra-shiplogs + # lf-infra macro to finish up a build. # - # Also ensure that the workspace is cleaned up at the end of the build. + # Handles the following: + # - Shipping logs to Nexus logs site repository + # - Cleanup workspace 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 + - role: BOTH + build-on: + - ABORTED + - FAILURE + - NOT_BUILT + - SUCCESS + - UNSTABLE + build-steps: + - lf-infra-sysstat + - lf-infra-ship-logs mark-unstable-if-failed: true - workspace-cleanup: - fail-build: false` + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - '**/*.jenkins-trigger' + fail-build: false + # SCMS - scm: name: git-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' + credentials-id: 'onap-jenkins-ssh' url: '$GIT_BASE' refspec: '' branches: @@ -208,7 +287,7 @@ name: gerrit-trigger-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' + credentials-id: 'onap-jenkins-ssh' url: '$GIT_BASE' refspec: '{refspec}' branches: @@ -216,12 +295,14 @@ skip-tag: true timeout: 30 choosing-strategy: '{choosing-strategy}' + submodule: + recursive: '{submodule-recursive}' - scm: name: gerrit-trigger-scm-basedir scm: - git: - credentials-id: 'ecomp-jenkins-ssh' + credentials-id: 'onap-jenkins-ssh' url: '$GIT_BASE' refspec: '{refspec}' branches: @@ -235,7 +316,7 @@ name: git-branch-scm scm: - git: - credentials-id: 'ecomp-jenkins-ssh' + credentials-id: 'onap-jenkins-ssh' url: '$GIT_BASE' refspec: '' branches: @@ -248,7 +329,7 @@ name: git-extra-project scm: - git: - credentials-id: 'ecomp-jenkins-ssh' + credentials-id: 'onap-jenkins-ssh' url: '$GIT_NO_PROJECT/{project}' refspec: '{refspec}' branches: @@ -311,6 +392,32 @@ - 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: name: build-timeout @@ -320,11 +427,21 @@ timeout: 360 fail: true +- wrapper: + name: golang + wrappers: + - raw: + xml: | + + Golang 1.10 + + - 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}' @@ -332,6 +449,6 @@ fail: true - ssh-agent-credentials: users: - - 'ecomp-jenkins-ssh' + - 'onap-jenkins-ssh' - openstack: single-use: true