- job: name: tcwg-test-release-matrix project-type: matrix defaults: global properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel - build-discarder: days-to-keep: 60 num-to-keep: 100 parameters: - string: name: tarball_url default: 'http://releases.linaro.org/components/toolchain/binaries/latest-7' description: 'The GCC binary tarball to test' - string: name: scripts_branch default: refs/remotes/origin/master description: 'Scripts revision to use ' - string: name: build_container_tag default: 'default' description: 'Distro to use for the container: trusty, xenial.' - string: name: release default: description: 'Release name' - string: name: target_list default: 'aarch64-elf aarch64-linux-gnu aarch64-linux-gnu_ilp32 aarch64_be-elf aarch64_be-linux-gnu armv8l-linux-gnueabihf arm-eabi arm-linux-gnueabi arm-linux-gnueabihf armeb-eabi armeb-linux-gnueabi armeb-linux-gnueabihf' description: 'List of targets to use' - string: name: tcwg_regression_rev default: 'master' description: 'tcwg-regression revision to use' - bool: name: debug default: false description: 'Whether to enable bash debugging output.' - bool: name: dryrun default: false description: 'Dry-run, do nothing, just print steps' disabled: false node: tcwg-coordinator retry-count: 3 concurrent: true display-name: 'TCWG Test Release matrix' scm: - git: url: https://git-us.linaro.org/toolchain/jenkins-scripts.git refspec: +refs/changes/*:refs/remotes/changes/* branches: - ${scripts_branch} skip-tag: true shallow-clone: true wipe-workspace: true axes: - axis: type: slave name: label values: - tcwg-x86_32-build - tcwg-x86_64-cam - axis: type: dynamic name: target values: - target_list execution-strategy: sequential: false triggers: - gerrit: server-name: 'review.linaro.org' gerrit-build-successful-codereview-value: 1 gerrit-build-failed-codereview-value: -1 projects: - project-compare-type: 'PLAIN' project-pattern: 'toolchain/tcwg-regression' branches: - branch-pattern: 'master' silent-start: true wrappers: - timeout: timeout: 300 - timestamps - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' - build-name: name: '#${BUILD_NUMBER}-${ENV,var="release"}-${ENV,var="target"}' builders: - shell: | #!/bin/bash set -e if test x${debug} = x"true"; then shell="/bin/bash -x" set -x else shell="/bin/bash" fi . jenkins-helpers.sh if [ x"$GERRIT_REFSPEC" != x"" ]; then tcwg_regression_rev="$GERRIT_REFSPEC" fi if test x"${tarball_url}" = x; then echo "ERROR: no binary tarball specified!" exit 1 fi case "$target:$toolchain_config:release" in aarch64-linux-gnu_ilp32:gcc7:*-rc*) # Building ILP32 toolchain as release candidate of gcc7. ;; aarch64-linux-gnu_ilp32:*) echo "SKIPPING ILP32 TOOLCHAIN IN NON-RC/NON-GCC7 BUILD" exit 0 ;; esac case ${label} in *32*) host=i686 builder_arch=i386 ;; *64*) host=x86_64 builder_arch=amd64 ;; *) echo "Unsupported slave type: ${label}" exit 1 ;; esac # Start build container builder=$(print_host_for_node $NODE_NAME) build_container_type=docker bash -x ${WORKSPACE}/start-container-${build_container_type}.sh --arch ${builder_arch} --distro ${build_container_tag} --session-host ${builder} --dryrun ${dryrun} > build-container.sh # Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port . ./build-container.sh BUILD_CONTAINER="${CONTAINER}" BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}" # Make sure to cleanup build container if something goes wrong if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}" trap "${CONTAINERS_CLEANUP}" EXIT fi # We want to run the mingw tests even if the linux toolchain fails its tests, so avoid exiting because of 'set -e' res=0 container_exec ${shell} ${WORKSPACE}/TestRelease.job --tarball "${tarball_url}/${target}/gcc-linaro-*-*-${host}_${target}.tar.xz" --workspace ${WORKSPACE}/linux --tcwg-regression-rev ${tcwg_regression_rev} || res=$? # Test the mingw toolchain on 32 bit host only case ${label} in *32*) host=i686-mingw32 container_exec ${shell} ${WORKSPACE}/TestRelease.job --tarball "${tarball_url}/${target}/gcc-linaro-*-*-${host}_${target}.tar.xz" --workspace ${WORKSPACE}/mingw --tcwg-regression-rev ${tcwg_regression_rev} || res=$? ;; esac exit $res publishers: - email-ext: recipients: 'tcwg-validation@linaro.org' aborted: true send-to: requester recipients