- job: name: tcwg-abe-test-gerrit-cambridge project-type: matrix defaults: global properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel - build-discarder: days-to-keep: 30 num-to-keep: 100 parameters: - string: name: GERRIT_PATCHSET_REVISION default: refs/remotes/origin/master description: 'Patched ABE revision' disabled: false node: tcwg-x86_64-cam retry-count: 3 concurrent: true display-name: 'TCWG BBB ABE Test' scm: - git: url: https://git-us.linaro.org/toolchain/abe.git refspec: +refs/changes/*:refs/remotes/changes/* branches: - ${GERRIT_PATCHSET_REVISION} skip-tag: true shallow-clone: false wipe-workspace: true choosing-strategy: gerrit triggers: - gerrit: server-name: 'review.linaro.org' override-votes: true gerrit-build-successful-verified-value: 1 gerrit-build-failed-verified-value: -1 gerrit-build-successful-codereview-value: 1 gerrit-build-failed-codereview-value: -1 readable-message: true successful-message: 'Works for me' failure-message: 'Well ... it worked on my machine' trigger-for-unreviewed-patches: true projects: - project-compare-type: 'ANT' project-pattern: 'toolchain/abe' branches: - branch-compare-type: 'ANT' branch-pattern: 'master' silent-start: true axes: - axis: type: slave name: label values: - tcwg-x86_64-cam - axis: type: user-defined name: test values: - cross_build - native_build - testsuite - abe-tests - abe-tests-checkout execution-strategy: sequential: false wrappers: - timeout: timeout: 300 - timestamps - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' - build-name: name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}' builders: - shell: | #!/bin/bash ARTIFACTS=${WORKSPACE}/artifacts mkdir -p "${ARTIFACTS}" # Create at least an (empty) artifact so that Jenkins does not complain # FIXME: Create an artifact for each case below, and no empty.txt echo > ${ARTIFACTS}/empty.txt # Explicitly checkout the branch/revision, as gerrit choosing # strategy doesn't pick up the right one when manually triggered. git checkout -f ${GERRIT_PATCHSET_REVISION} schroot_arch=amd64 schroot_image="tcwg-build-${schroot_arch}-trusty" session_id=$(schroot -b -c chroot:$schroot_image --preserve-environment) BUILD_SHELL="schroot -r -c session:$session_id --preserve-environment -- bash" $BUILD_SHELL -c "echo \"Build session is up; ulimit config:\"; ulimit -a" # Sometimes /dev/pts can't get unmounted on the first try. # Workaround by retrying. trap "schroot -f -e -c session:$session_id || { sleep 60 ; schroot -f -e -c session:$session_id; } || true" 0 1 2 3 5 9 13 15 status=0 case "$test" in cross_build) ${BUILD_SHELL} -x ${WORKSPACE}/jenkins.sh --target arm-linux-gnueabihf --runtests --excludecheck gdb --override '--extraconfigdir ../config/gcc6' status=$? ;; native_build) ${BUILD_SHELL} -x ${WORKSPACE}/jenkins.sh --target native --runtests --bootstrap --excludecheck gdb --override '--extraconfigdir ../config/gcc5' status=$? ;; testsuite) ${BUILD_SHELL} -c "set -ex; ./configure; make check" status=$? ;; abe-tests) ${BUILD_SHELL} -c "set -ex; git clone https://git.linaro.org/toolchain/abe-tests.git; cd abe-tests; ./test-manifest2.sh --abe-path `pwd` --ref-snapshots /home/tcwg-buildslave/snapshots-ref --quiet --display-report" status=$? cp abe-tests/full-manifest-test/*.txt ${ARTIFACTS} rm ${ARTIFACTS}/empty.txt # full build logs are large, and not very useful, so we # don't waste the disk space on them rm -f ${ARTIFACTS}/test-mani-build[12].txt ;; abe-tests-checkout) ${BUILD_SHELL} -c "set -ex; git clone https://git.linaro.org/toolchain/abe-tests.git; cd abe-tests; ./test-checkout.sh --clean-snapshots --abe-path `pwd` --ref-snapshots /home/tcwg-buildslave/snapshots-ref" status=$? cp abe-tests/checkout-test/workspace*/test_*.log ${ARTIFACTS} rm artifacts/empty.txt # the reports from here aren't usually needed, so are # worth compressing xz ${ARTIFACTS}/* ;; esac exit ${status} publishers: - workspace-cleanup: include: - "nothing" dirmatch: true - archive: artifacts: 'artifacts/*' latest-only: false