X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-macros.yaml;h=7bd3a04e76657cd10a139ec01720637f42c1c265;hb=0bce2deec8afba3f0761959487c8d7d7773daa7b;hp=8c8ad088467c5593c206c062ab722352fe1aa0b2;hpb=09d98f8d0bd133f84a514fc103976b06ae38b7da;p=releng%2Fbuilder.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 8c8ad0884..7bd3a04e7 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -1,16 +1,16 @@ # OLD Releng macros - parameter: - name: project-parameter + name: opendaylight-infra-parameters parameters: - string: name: PROJECT default: '{project}' - description: "JJB configured PROJECT parameter to identify an ODL Gerrit project" - -- parameter: - name: gerrit-parameters - parameters: + description: 'Parameter to identify an ODL Gerrit project' + - string: + name: ARCHIVE_ARTIFACTS + default: '{artifacts} **/target/surefire-reports/*-output.txt' + description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org' - string: name: GERRIT_PROJECT default: '{project}' @@ -76,7 +76,7 @@ name: git-scm scm: - git: - credentials-id: '{credentials-id}' + credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' refspec: '' branches: @@ -88,7 +88,7 @@ name: git-scm-with-submodules scm: - git: - credentials-id: '{credentials-id}' + credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' refspec: '' branches: @@ -102,7 +102,7 @@ name: gerrit-trigger-scm scm: - git: - credentials-id: '{credentials-id}' + credentials-id: 'opendaylight-jenkins-ssh' url: '$GIT_BASE' refspec: '{refspec}' branches: @@ -140,6 +140,28 @@ - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' +- trigger: + name: gerrit-trigger-relevant-patch-submitted + triggers: + - gerrit: + server-name: 'OpenDaylight' + trigger-on: + - patchset-created-event: + exclude-drafts: 'true' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + - trigger: name: gerrit-trigger-patch-merged triggers: @@ -216,7 +238,6 @@ unstable: true fixed: true send-to: - - developers - recipients - publisher: @@ -236,11 +257,49 @@ healthy: 50 unhealthy: 40 +- publisher: + name: archive-build + # To archive things the job will need to create a "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: 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: 'odl-global-settings' + global-settings-type: cfp + - description-setter: + regexp: '^Build logs: .*' + # Cleanup after ourselves + - wipe-org-opendaylight-repo + script-only-if-succeeded: False + script-only-if-failed: False + mark-unstable-if-failed: True + - workspace-cleanup: + fail-build: false + - builder: name: wipe-org-opendaylight-repo builders: - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi' +- builder: + name: wipe-local-maven-repo + builders: + - shell: 'if [ -d /tmp/r ]; then rm -rf /tmp/r; fi' + - builder: name: jacoco-nojava-workaround builders: @@ -268,6 +327,25 @@ - file-id: '{settings-file}' variable: 'SETTINGS_FILE' +- builder: + name: releng-fetch-p2zip-if-necessary + builders: + - shell: | + # Cleanup any existing zips and metadata before we download the new update site + rm -f *.zip *.xml + - conditional-step: + condition-kind: strings-match + condition-string1: '$P2ZIP_URL' + condition-string2: '' + condition-basedir: workspace + steps: + # TODO: Figure out latest snapshot version number to pull rather than hardcoding 1.1.1-SNAPSHOT + - maven-target: + maven-version: '{maven-version}' + goals: 'org.apache.maven.plugins:maven-dependency-plugin:get org.apache.maven.plugins:maven-dependency-plugin:copy -V -B -Dartifact=org.opendaylight.yangide:org.opendaylight.yangide.update-site:1.1.1-SNAPSHOT:zip -DoutputDirectory=$WORKSPACE' + settings: '{settings}' + global-settings: '{global-settings}' + - builder: name: releng-generate-p2pom builders: @@ -277,14 +355,37 @@ name: releng-update-p2composite-metadata builders: - shell: !include-raw: include-raw-update-p2composite-metadata.sh - - maven-target: - maven-version: '{maven-version}' - pom: 'deploy-composite-repo.xml' - goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r' - settings: '{settings}' - global-settings: '{global-settings}' + - conditional-step: + condition-kind: file-exists + condition-filename: deploy-composite-repo.xml + condition-basedir: workspace + steps: + - maven-target: + maven-version: '{maven-version}' + pom: 'deploy-composite-repo.xml' + goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r' + settings: '{settings}' + global-settings: '{global-settings}' - builder: name: releng-stage-release builders: - shell: !include-raw: include-raw-stage-release.sh + +- wrapper: + # This wrapper is required for all jobs as it configures the wrappers + # needed by OpenDaylight infra. + name: opendaylight-infra-wrappers + wrappers: + - timeout: + type: absolute + timeout: '{build-timeout}' + timeout-var: 'BUILD_TIMEOUT' + fail: true + - ssh-agent-credentials: + users: + - 'opendaylight-jenkins-ssh' + - jclouds: + single-use: True + - openstack: + single-use: True