- job: name: tcwg-regression-detection project-type: multijob defaults: global properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel - build-discarder: days-to-keep: 30 num-to-keep: 30 parameters: - string: name: abe_test_list default: 'abe-tests-checkout' description: 'List of ABE tests to perform' - string: name: release_target_list default: 'arm-linux-gnueabihf' description: 'List of release targets to use' - string: name: ref_abe_rev default: '' description: 'Reference ABE revision to use. Empty (default) means previous revision' - string: name: ref_scripts_branch default: '' description: 'Reference scripts branch to test. Empty (default) means previous revision' - string: name: ref_distro default: 'lts' description: 'Distro image to use in reference builds.' - string: name: abe_branch default: master description: 'ABE branch to test' - string: name: scripts_branch default: master description: 'Scripts branch to test' - string: name: distro default: 'lts' description: 'Distro image to use' - 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 Regression Detection' scm: - git: url: https://git.linaro.org/toolchain/abe.git refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* branches: - $abe_branch wipe-workspace: false clean: before: true scm-name: abe skip-tag: true - git: url: https://git.linaro.org/toolchain/abe-tests.git basedir: abe-tests branches: - refs/heads/master wipe-workspace: false clean: before: true scm-name: abe-tests skip-tag: true - git: url: https://git.linaro.org/toolchain/gcc-compare-results.git basedir: gcc-compare-results branches: - refs/heads/master wipe-workspace: false clean: before: true scm-name: gcc-compare-results skip-tag: true - git: url: https://git.linaro.org/toolchain/jenkins-scripts.git refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* basedir: jenkins-scripts branches: - $scripts_branch wipe-workspace: false clean: before: true scm-name: jenkins-scripts skip-tag: true triggers: - gerrit: server-name: 'review.linaro.org' trigger-on: - change-merged-event projects: - project-compare-type: 'PLAIN' project-pattern: 'toolchain/abe-tests' branches: - branch-pattern: 'master' - project-compare-type: 'PLAIN' project-pattern: 'toolchain/gcc-compare-results' branches: - branch-pattern: 'master' wrappers: - timeout: timeout: 600 - timestamps - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' - build-name: name: '#${BUILD_NUMBER}' builders: - shell: | #!/bin/bash mkdir -p artifacts/ . jenkins-scripts/jenkins-helpers.sh # Abe's revisions to test # TODO: gather reference from previous build instead of using N-1. cur_abe_rev=$(git_rev_parse . HEAD) ref_abe_rev=$(git_rev_parse . ${ref_abe_rev:-HEAD~}) cur_scripts_branch=$(git_rev_parse jenkins-scripts HEAD) ref_scripts_branch=$(git_rev_parse jenkins-scripts ${ref_scripts_branch:-HEAD~}) echo "abe_revision=$cur_abe_rev" > artifacts/infos.txt # TODO: compute ref and eval jenkins-scripts versions cat << EOF > buildfarm_cmp_parameters ref_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch eval_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch ref_abe_branch=$ref_abe_rev eval_abe_branch=$cur_abe_rev ref_scripts_branch=$ref_scripts_branch eval_scripts_branch=$cur_scripts_branch ref_distro=$ref_distro eval_distro=$distro target_list=aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf displaytag=reg-detection-${BUILD_NUMBER} dryrun=$dryrun EOF echo "NOTE: Buildfarm cmp job parameters:" cat buildfarm_cmp_parameters cat << EOF > dev_build_parameters release_name=reg-detection-${BUILD_NUMBER} target=${release_target_list%% *} version=default scripts_branch=$cur_scripts_branch extra_options=abe_branch=$cur_abe_rev EOF echo "NOTE: Dev build job parameters:" cat dev_build_parameters # TODO: Change fileserver and/or location to avoid mixing "real" # releases and regression detection builds. # testrelease=false means that tcwg-make-release should # not spawn tcwg-test-release itself. This is taken care # of by tcwg-make-and-test-release. # keep 6.2-2016.11 regtest tag until we make one for 7.1 cat << EOF > make_test_release_parameters gcc_src=http://releases.linaro.org/components/toolchain/gcc-linaro/7.2-2017.11/gcc-linaro-7.2-2017.11.tar.xz release_name=2017.11-regtest-${BUILD_NUMBER} toolchain_config=gcc7 abe_branch=$cur_abe_rev fileserver=dev-01.tcwglab target_list=$release_target_list testrelease=false tcwg_regression_rev=master dryrun=$dryrun EOF echo "NOTE: Make-release job parameters:" cat make_test_release_parameters rm -f llvm_release_parameters if ! git --git-dir=jenkins-scripts/.git diff --exit-code --name-only \ GIT_PREVIOUS_COMMIT_3 GIT_COMMIT_3 -- \ start-container-docker.sh build-container.sh tcwg-llvm-release.sh; then cat << EOF > llvm_release_parameters release=7.0.0 candidate=final build_container_tag=lts_1 EOF fi - multijob: name: 'Check Manifest' condition: ALWAYS projects: - name: tcwg-abe-test predefined-parameters: | test_list=$abe_test_list - multijob: name: 'Check build/testsuite and releases' condition: COMPLETED projects: - name: tcwg-buildfarm-cmp property-file: buildfarm_cmp_parameters - name: tcwg-dev-build property-file: dev_build_parameters - name: tcwg-make-and-test-release property-file: make_test_release_parameters predefined-parameters: | target_list='arm-linux-gnueabihf' - trigger-builds: - project: tcwg-llvm-release predefined-parameters: | target_list='arm-linux-gnueabihf' parameter-factories: - factory: filebuild file-pattern: llvm_release_parameters publishers: - archive: artifacts: 'artifacts/*' latest-only: false - email-ext: recipients: 'yvan.roux@linaro.org tcwg-validation@linaro.org' aborted: true