X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-macros.yaml;h=c068143a63e5ce4714bea11be611928195157315;hb=098435742c9e0baa3f458f2827ffbcfcf6b7fe91;hp=f13bef94192cdf1c42a9f7fb90e569329ef9d36d;hpb=78cc8cc4484b6a89516e2686f40537dcec2892c8;p=releng%2Fbuilder.git diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index f13bef941..c068143a6 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -1,5 +1,11 @@ # OLD Releng macros +- property: + name: opendaylight-infra-properties + properties: + - build-discarder: + days-to-keep: '{build-days-to-keep}' + - parameter: name: opendaylight-infra-parameters parameters: @@ -9,7 +15,7 @@ description: 'Parameter to identify an ODL Gerrit project' - string: name: ARCHIVE_ARTIFACTS - default: '{artifacts} **/target/surefire-reports/*-output.txt' + default: '{artifacts} **/target/surefire-reports/*-output.txt **/hs_err_*.log' description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org' - string: name: GERRIT_PROJECT @@ -23,6 +29,10 @@ 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: build-tag @@ -233,7 +243,14 @@ body: | $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS: - Check console output at $BUILD_URL to view the results. + Please refer to the logs server URL for console logs when possible + and use the Jenkins Build URL as a last resort. + + Console Logs URL: + https://logs.opendaylight.org/$SILO/$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER + + Jenkins Build URL: + $BUILD_URL unstable: true fixed: true send-to: @@ -270,6 +287,7 @@ publishers: - postbuildscript: builders: + - shell: !include-raw: include-raw-stack-delete.sh - shell: !include-raw: include-raw-deploy-archives.sh - maven-target: maven-version: '{maven-version}' @@ -293,6 +311,38 @@ - '**/*.jenkins-trigger' fail-build: false +- builder: + name: opendaylight-infra-stack + # opendaylight-infra-stack.sh has a required variable {stack-template} that + # must be passed into this macro. + builders: + - shell: !include-raw: opendaylight-infra-stack.sh + - shell: !include-raw-escape: opendaylight-infra-copy-ssh-keys.sh + +- builder: + name: opendaylight-infra-push-gerrit-patch + # opendaylight-infra-push-gerrit-patch.sh allows a job to push a patch to + # Gerrit in an automated fashion. This is meant for tasks that creates + # the same patch regularly and needs the ability to detect if an unreviewed + # patch already exists. In which case it will update the existing patch. + # + # Note: This patch assumes the $WORKSPACE contains the project repo with + # the files changed already "git add" and waiting for a "git commit" call. + # + # This script requires the following JJB variables to be passed in: + # {project} Gerrit project-name + # {gerrit-topic} Gerrit topic, please make a unique topic. + # {gerrit-commit-message} Commit message to assign to commit. + # NOTE: Requires git review to be installed on node. + builders: + - shell: !include-raw: opendaylight-infra-push-gerrit-patch.sh + +- builder: + name: distribute-build-url + # Place URL of the current run of a build job to a file at given path. + builders: + - shell: 'echo "$BUILD_URL" > {path}/build.url' + - builder: name: wipe-org-opendaylight-repo builders: @@ -380,6 +430,11 @@ # needed by OpenDaylight infra. name: opendaylight-infra-wrappers wrappers: + - mask-passwords + - config-file-provider: + files: + - file-id: rackspace-heat + target: '$HOME/.config/openstack/clouds.yaml' - timeout: type: absolute timeout: '{build-timeout}' @@ -389,8 +444,6 @@ - ssh-agent-credentials: users: - 'opendaylight-jenkins-ssh' - - jclouds: - single-use: True - openstack: single-use: True @@ -403,15 +456,33 @@ variable: 'CLOUDENV' - shell: | cd packer - export PACKER_LOG="yes" && \ - export PACKER_LOG_PATH="packer-validate.log" && \ - packer.io validate -var-file=$CLOUDENV \ - -var-file=../packer/vars/{platform}.json \ - ../packer/templates/{template}.json + varfiles="../packer/vars/*" + templates="../packer/templates/*" + provision="../packer/provision/*.sh" + for v in $varfiles; do + [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue + for t in $templates; do + export PACKER_LOG="yes" && \ + export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \ + packer.io validate -var-file=$CLOUDENV \ + -var-file=$v $t + if [ $? -ne 0 ]; then + break + fi + done + done + for p in $provision; do + /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1 + done + - builder: name: packer-build builders: + - config-file-provider: + files: + - file-id: 'packer-cloud-env' + variable: 'CLOUDENV' - shell: | cd packer export PACKER_LOG="yes" && \ @@ -419,3 +490,19 @@ packer.io build -var-file=$CLOUDENV \ -var-file=../packer/vars/{platform}.json \ ../packer/templates/{template}.json + +- builder: + # TODO: Verify signature after downloading users public key from a locally created + # repository instead of the public keymesh. This requires a process in place to get ODL + # developers public keys into a local repository without increasing the job thoughput. + name: verify-gpg-signature + builders: + - shell: !include-raw: include-raw-verify-gpg-signatures.sh + +- builder: + name: opendaylight-infra-jjbini + builders: + - config-file-provider: + files: + - file-id: 'jjbini' + target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'