- job: name: tcwg-gnu-patch-benchmarking project-type: matrix defaults: global properties: - authorization: linaro: - job-read - job-extended-read - job-build - job-cancel - build-discarder: days-to-keep: 30 num-to-keep: 100 parameters: - string: name: GERRIT_PATCHSET_REVISION default: refs/remotes/origin/linaro/gcc-7-branch description: 'Patched GCC revision' - string: name: GERRIT_BRANCH default: linaro-local/gcc-7-integration-branch description: 'Base GCC branch. Use "master" for master branches of all components, while "gcc-master" keeps release branches for other toolchain components' - string: name: gcc_orig default: gcc_patch_prev description: 'Original GCC revision' - string: name: abe_branch default: tested description: 'ABE revision to use' - string: name: scripts_branch default: tested description: 'jenkins-scripts revision to use' - string: name: target_list default: 'aarch64-linux-gnu arm-linux-gnueabihf' description: 'List of targets' - string: name: extension_list default: 'O2g' description: 'List of build profiles: O2, O3, O2g, O3g, Ofast, Os' - text: name: buildfarm_params default: | host_x86_64_languages=c,c++,fortran host_aarchXX_languages=c,c++,fortran runtests= try_bootstrap=false host_x86_64_excludecheck=gdb host_aarchXX_excludecheck=gdb extraconfig= rebuild=true dont_fail=false log_server=dev-01.tcwglab:logs build_container_tag=default binaries=true description: 'Buildfarm parameters, see tcwg-buildfarm job' - text: name: benchmark_params default: | bench_list=bzip2 cflags= testmode=benchmark iterations=1 sysroot=tarball fileserver=dev-01.tcwglab forceinstall=false run_profile=parallel3x3 scripts_branch=master bmk_branch=master description: 'Benchmark parameters, see tcwg-benchmark job' disabled: false node: tcwg-bmk-coordinator concurrent: true display-name: 'TCWG ZZZ GNU Patch Benchmarking' scm: - git: url: https://git.linaro.org/toolchain/gcc.git refspec: +refs/changes/*:refs/remotes/changes/* basedir: gcc branches: - ${GERRIT_PATCHSET_REVISION} skip-tag: true wipe-workspace: false clean: before: true reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git choosing-strategy: gerrit - git: url: https://git.linaro.org/toolchain/abe.git refspec: +refs/changes/*:refs/remotes/changes/* basedir: abe branches: - $abe_branch skip-tag: true shallow-clone: true wipe-workspace: true - git: url: https://git.linaro.org/toolchain/jenkins-scripts.git refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* branches: - $scripts_branch basedir: jenkins-scripts skip-tag: true shallow-clone: true wipe-workspace: true axes: - axis: type: slave name: label values: - tcwg-coordinator - axis: type: dynamic name: target values: - target_list - axis: type: dynamic name: extension values: - extension_list execution-strategy: sequential: false wrappers: - timeout: timeout: 600 - timestamps - ssh-agent-credentials: users: - 'tcwg-benchmark' builders: - shell: | #!/bin/bash set -ex # For git_rev_parse . ./jenkins-scripts/jenkins-helpers.sh # Gather revisions to build. abe_rev=$(git_rev_parse abe $abe_branch) gcc_patch_rev=$(git_rev_parse gcc $GERRIT_PATCHSET_REVISION) if [ x"$gcc_orig" = x"gcc_patch_prev" ]; then gcc_orig="$gcc_patch_rev^" fi gcc_orig_rev=$(git_rev_parse gcc $gcc_orig) # Get matching config. case ${GERRIT_BRANCH} in *gcc-4_9*) toolchainconf='--extraconfigdir ../config/gcc4_9' ;; *gcc-5*) toolchainconf='--extraconfigdir ../config/gcc5' ;; *gcc-6*) toolchainconf='--extraconfigdir ../config/gcc6' ;; *gcc-7*) toolchainconf='--extraconfigdir ../config/gcc7' ;; gcc-master) toolchainconf='--extraconfigdir ../config/latest-rel' ;; *) toolchainconf='--extraconfigdir ../config/gcc7 binutils=binutils-gdb.git/master glibc=glibc.git~master newlib=newlib.git~master' ;; esac cat > gcc_orig_params <> gcc_orig_params cat > gcc_patch_params <> gcc_patch_params - trigger-builds: - project: 'tcwg-buildfarm' parameter-factories: - factory: filebuild file-pattern: gcc_*_params block: true - shell: | #!/bin/bash set -ex case "$target" in "arm-"*) board="tk1_32" ;; "armv8l-"*) board="tx1_32" ;; *) board="tx1_64" ;; esac # Assuming cross build as a first step label=tcwg-x86_64-build # Extract triggered build numbers from comma separated list bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_buildfarm//,/ }) REFNUM=${bf_buildnum[0]} PATCHNUM=${bf_buildnum[1]} BF_URL_PREFIX=https://ci.linaro.org/job/tcwg-buildfarm BF_URL_SUFIX=label=${label},target=${target} # Hackish way to get tarball name from json api TAR_REF_NAME=$(wget --quiet ${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\"gcc-linaro-.*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g') TAR_PATCH_NAME=$(wget --quiet ${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/api/json?pretty=true -O -| grep -P "fileName.*\"gcc-linaro-.*.tar.xz\"" | awk '{print $3}' | sed -e 's/[",]//g') rm -rf ref-tools mkdir -p ref-tools cd ref-tools wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${REFNUM}/${BF_URL_SUFIX}/artifact/artifacts/${TAR_REF_NAME}" tar xJf gcc-linaro*.tar.xz REF_CCPREFIX=$(readlink -f gcc-linaro-*/bin)/${target}- cd .. rm -rf patch-tools mkdir -p patch-tools cd patch-tools wget --progress=dot -e dotbytes=2M "${BF_URL_PREFIX}/${PATCHNUM}/${BF_URL_SUFIX}/artifact/artifacts/${TAR_PATCH_NAME}" tar xJf gcc-linaro*.tar.xz PATCH_CCPREFIX=$(readlink -f gcc-linaro-*/bin)/${target}- cd .. cat > ref_params <> ref_params cat > patch_params <> patch_params - trigger-builds: - project: 'tcwg-benchmark' property-file: ref_params block: true - trigger-builds: - project: 'tcwg-benchmark' property-file: patch_params block: true - shell: | #!/bin/bash set -ex case "$target" in "arm-"*) board="tk1_32" ;; "armv8l-"*) board="tx1_32" ;; *) board="tx1_64" ;; esac # Extract triggered build numbers from comma separated list bf_buildnum=(${TRIGGERED_BUILD_NUMBERS_tcwg_benchmark//,/ }) REFNUM=${bf_buildnum[0]} PATCHNUM=${bf_buildnum[1]} cat > res_params << EOF results_ref=${board}/tcwg-benchmark-${REFNUM} results_id=${board}/tcwg-benchmark-${PATCHNUM} EOF cat > cmp_params << EOF resultsref=${board}/tcwg-benchmark-${REFNUM} resultseval=${board}/tcwg-benchmark-${PATCHNUM} EOF - trigger-builds: - project: 'tcwg-benchmark-results' property-file: res_params block: false - project: 'tcwg-benchmark-compare' property-file: cmp_params block: false