- job: name: tcwg-test-release project-type: freestyle 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: '' 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: 'lts_1' description: 'Distro to use for the container: bionic, focal.' - string: name: release default: description: 'Release name, only displayed in job name' - string: name: target default: description: 'Target, only displayed in job name' - 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-x86_64-cam retry-count: 3 concurrent: true workspace: /home/tcwg-buildslave/workspace/tcwg-test-release/$release/$target display-name: 'TCWG Test Release' scm: - git: url: https://git.linaro.org/toolchain/jenkins-scripts.git refspec: +refs/changes/*:refs/remotes/changes/* branches: - ${scripts_branch} skip-tag: true shallow-clone: true wipe-workspace: 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 . jenkins-helpers.sh if test x${debug} = x"true"; then shell="/bin/bash -x" set -x else shell="/bin/bash" fi # tarball_url is read from the tcwg.params file, which is # setup by the MakeRelease job. if test x"${tarball_url}" = x; then echo "ERROR: no binary tarball specified!" exit 1 fi # Start build container builder=$(print_host_for_node $NODE_NAME) build_container_type=docker # Use tarball name to decide if we use an i386 container or an amd64 one tarball_file=$(basename ${tarball_url}) case ${tarball_file} in *-i686*) builder_arch=i386 echo "ERROR: i386 containers no longer supported for tarball ${tarball_file}" exit 1 ;; *-x86_64*) builder_arch=amd64 ;; *) echo "ERROR: could not determine container type from tarball ${tarball_file}" exit 1 ;; esac 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 ${BUILD_CONTAINER} "cd ${WORKSPACE} && ${shell} ${WORKSPACE}/TestRelease.job --tarball ${tarball_url} --tcwg-regression-rev ${tcwg_regression_rev}" exit $? publishers: - email-ext: recipients: 'tcwg-validation@linaro.org' aborted: true send-to: requester recipients