- job: name: tcwg-binutils-testing project-type: matrix defaults: global logrotate: daysToKeep: 30 numToKeep: 30 properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel parameters: - string: name: binutils_rev default: 'refs/remotes/origin/master' description: 'binutils revision to build' disabled: false node: tcwg-x86_64-ex40 retry-count: 3 concurrent: true display-name: 'TCWG ZZZ Binutils - testing' scm: - git: url: https://git-us.linaro.org/toolchain/binutils-gdb.git refspec: +refs/heads/master:refs/remotes/origin/master branches: - ${binutils_rev} skip-tag: true shallow-clone: false reference-repo: /home/tcwg-buildslave/snapshots-ref/binutils-gdb.git wipe-workspace: false axes: - axis: type: slave name: label values: - tcwg-x86_64-cam - tcwg-aarch64-build - axis: type: user-defined name: bfd values: - --enable-64-bit-bfd=no - --enable-64-bit-bfd=yes - axis: type: user-defined name: schroot_arch values: - i386 - amd64 - axis: type: user-defined name: target values: - aarch64-linux-gnu - aarch64-none-elf - aarch64_be-none-elf - arm-linux-gnueabi - arm-linux-gnueabihf - arm-netbsdelf - arm-none-eabi - arm-none-nacl - arm-none-symbianelf - arm-vxworks - arm-wince-pe - armeb-linux-gnueabihf - native - schroot-armhf-native execution-strategy: combination-filter: | (label=="tcwg-x86_64-cam" && target!="schroot-armhf-native") || (label=="tcwg-aarch64-build" && (target=="native" || target=="schroot-armhf-native") && (bfd=="--enable-64-bit-bfd=no") && (schroot_arch=="i386")) sequential: false wrappers: - timeout: timeout: 600 - timestamps - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' - build-name: name: '#${BUILD_NUMBER}-${ENV,var="binutils_rev"}' builders: - shell: | #!/bin/bash set -e set -x case ${target} in schroot-*) schroot_arch=$(echo ${target} | sed -e "s/^schroot-\([^-]*\)-\(.*\)/\1/") target=$(echo ${target} | sed -e "s/^schroot-\([^-]*\)-\(.*\)/\2/") ;; *) # If schroot_arch is not implied by $target, use the # value from the matrix on x86_64. On aarch64, use # arm64. case $(uname -m) in x86_64) ;; aarch64) schroot_arch="arm64" ;; *) echo "Unexpected architecture $(uname -m)"; exit 1 ;; esac ;; esac 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; }" 0 1 2 3 5 9 13 15 case $target in arm-wince-pe) lto= ;; *) lto=--enable-lto ;; esac case $target in *native*) target_flag= ;; *) target_flag="--target $target" ;; esac rm -rf build-$target || true mkdir -p build-$target cd build-$target result=0 jobs=$(getconf _NPROCESSORS_ONLN) echo BUILD STARTED $(date) uname -a # test that expect is working and output some debug info if not ${BUILD_SHELL} -c 'if ! echo "spawn true" | /usr/bin/expect -f - >/dev/null; then echo "expect cannot spawn processes. Aborting make check."; echo "some debug info follows..."; echo "running: ls -l /dev/ptmx"; ls -l /dev/ptmx; echo "running: ls -l /dev/pts"; ls -l /dev/pts; echo "running: grep devpts /proc/mounts"; grep devpts /proc/mounts; exit 1; fi' # If configure or build fails, the execution will stop # because of 'set -e'. But for 'make check' we want to # execute all the tests, and report if there were some # errors. ${BUILD_SHELL} -c "../configure $lto --enable-plugins --disable-gprof --disable-gdb --disable-sim --disable-libdecnumber --disable-readline --prefix=`pwd`/install $target_flag ${bfd}" ${BUILD_SHELL} -c "make all -j$jobs" ${BUILD_SHELL} -c "make check -j$jobs -k" || result=1 sums=`find . -name "*.sum"` [ x"$sums" != x ] && egrep '^FAIL:|^XPASS:' $sums || true [ x"$sums" != x ] && tail $sums echo BUILD FINISHED $(date) exit $result publishers: - email: recipients: 'christophe.lyon@linaro.org'