| --- |
| # Global macros |
| |
| # 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' |
| |
| # 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: '{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: |
| - maven.test.skip=true |
| - 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: '{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: |
| - maven.test.skip=true |
| - 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 |
| |
| # PARAMETERS |
| - parameter: |
| name: infra-parameters |
| parameters: |
| - string: |
| name: PROJECT |
| default: '{project}' |
| # yamllint disable rule:line-length |
| description: 'JJB configured PROJECT parameter to identify a Gerrit project' |
| # yamllint enable |
| - string: |
| name: ARCHIVE_ARTIFACTS |
| default: '{artifacts} **/target/surefire-reports/*-output.txt' |
| # yamllint disable rule:line-length |
| 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' |
| - string: |
| name: GERRIT_PROJECT |
| 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' |
| - string: |
| name: STACK_NAME |
| default: '$JOB_NAME-$BUILD_NUMBER' |
| description: 'Used by Heat to generate a unique stack & vm name' |
| |
| - parameter: |
| name: maven-exec |
| parameters: |
| - string: |
| name: MVN |
| # yamllint disable rule:line-length |
| default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn' |
| # yamllint enable |
| description: 'Maven selector to be used by shell scripts' |
| |
| # PROPERTIES |
| - property: |
| name: infra-properties |
| properties: |
| - build-discarder: |
| days-to-keep: '{build-days-to-keep}' |
| num-to-keep: 40 |
| artifact-days-to-keep: -1 |
| artifact-num-to-keep: 5 |
| |
| # PUBLISHERS |
| - publisher: |
| name: archive-artifacts |
| publishers: |
| - archive: |
| artifacts: '{artifacts}' |
| allow-empty: true |
| fingerprint: true |
| latest-only: true |
| |
| - publisher: |
| name: email-notification |
| publishers: |
| - email-ext: |
| 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!' |
| # yamllint enable |
| body: | |
| $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS: |
| |
| Check console output at $BUILD_URL to view the results. |
| unstable: true |
| fixed: true |
| send-to: |
| - developers |
| - recipients |
| |
| - publisher: |
| name: jacoco-report |
| publishers: |
| - jacoco: |
| exec-pattern: '**/**.exec' |
| class-pattern: '**/classes' |
| source-pattern: '**/src/main/java' |
| # yamllint disable rule:line-length |
| exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**' |
| # yamllint enable |
| status-update: true |
| targets: |
| - branch: |
| healthy: 10 |
| unhealthy: 20 |
| - method: |
| healthy: 50 |
| unhealthy: 40 |
| |
| - publisher: |
| name: 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. |
| publishers: |
| - postbuildscript: |
| builders: |
| - shell: !include-raw-escape: 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` |
| |
| # SCMS |
| - scm: |
| name: git-scm |
| scm: |
| - git: |
| credentials-id: 'onap-jenkins-ssh' |
| url: '$GIT_BASE' |
| refspec: '' |
| branches: |
| - 'origin/{branch}' |
| skip-tag: true |
| wipe-workspace: true |
| timeout: 30 |
| |
| - scm: |
| name: gerrit-trigger-scm |
| scm: |
| - git: |
| credentials-id: 'onap-jenkins-ssh' |
| url: '$GIT_BASE' |
| refspec: '{refspec}' |
| branches: |
| - 'origin/$GERRIT_BRANCH' |
| skip-tag: true |
| timeout: 30 |
| choosing-strategy: '{choosing-strategy}' |
| |
| - scm: |
| name: gerrit-trigger-scm-basedir |
| scm: |
| - git: |
| credentials-id: 'onap-jenkins-ssh' |
| url: '$GIT_BASE' |
| refspec: '{refspec}' |
| branches: |
| - 'origin/$GERRIT_BRANCH' |
| skip-tag: true |
| timeout: 30 |
| choosing-strategy: '{choosing-strategy}' |
| basedir: '{basedir}' |
| |
| - scm: |
| name: git-branch-scm |
| scm: |
| - git: |
| credentials-id: 'onap-jenkins-ssh' |
| url: '$GIT_BASE' |
| refspec: '' |
| branches: |
| - 'origin/{branch}' |
| skip-tag: true |
| timeout: 30 |
| wipe-workspace: true |
| |
| - scm: |
| name: git-extra-project |
| scm: |
| - git: |
| credentials-id: 'onap-jenkins-ssh' |
| url: '$GIT_NO_PROJECT/{project}' |
| refspec: '{refspec}' |
| branches: |
| - 'origin/{branch}' |
| skip-tag: true |
| timeoute: 30 |
| wipe-workspace: false |
| basedir: '{checkout-dir}' |
| |
| # TRIGGERS |
| |
| # This is a single macro to use for all jobs who vote on every (relevant) patch |
| # set. Only 'recheck' trigger word is supported, it always triggers the full set |
| # of relevant jobs, in order to prevent Jenkins from starting only a subset and |
| # still voting Verified+1 |
| # Arguments: |
| # server: name of gerrit server to listen to |
| # project: pattern to match triggering projects |
| # branch: triggering branch name |
| # files: pattern to match triggering filepaths |
| - trigger: |
| name: gerrit-trigger-patch-submitted |
| triggers: |
| - gerrit: |
| server-name: '{server}' |
| trigger-on: |
| - patchset-created-event: |
| exclude-drafts: 'false' |
| exclude-trivial-rebase: 'false' |
| exclude-no-code-change: 'false' |
| - draft-published-event |
| - comment-added-contains-event: |
| comment-contains-value: 'recheck' |
| 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-patch-merged |
| triggers: |
| - gerrit: |
| server-name: '{server}' |
| trigger-on: |
| - change-merged-event |
| - comment-added-contains-event: |
| comment-contains-value: 'remerge' |
| 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: |
| name: build-timeout |
| wrappers: |
| - timeout: |
| type: absolute |
| timeout: 360 |
| fail: true |
| |
| - wrapper: |
| # This wrapper is required for all jobs as it configures the wrappers |
| # needed by the eCOMP infra. |
| name: infra-wrappers |
| wrappers: |
| - timestamps |
| - timeout: |
| type: absolute |
| timeout: '{build-timeout}' |
| timeout-var: 'BUILD_TIMEOUT' |
| fail: true |
| - ssh-agent-credentials: |
| users: |
| - 'onap-jenkins-ssh' |
| - openstack: |
| single-use: true |