- job: name: 'tcwg-race-bernie' project-type: matrix 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 artifact-days-to-keep: 2 artifact-num-to-keep: 40 parameters: - string: name: override default: '' description: 'Versions of components to build; e.g. binutils=binutils-gdb.git/linaro_binutils-2_25-branch gcc=gcc.git~linaro/gcc-5-branch glibc=glibc.git~release/2.21/master' - string: name: host_x86_64_languages default: 'default' description: 'Languages to build for x86_64-hosted toolchains, e.g., "c,c++" or "all" or "default"' - string: name: host_aarchXX_languages default: 'c,c++' description: 'Languages to build for AArchXX-hosted toolchains, e.g., "c,c++" or "all" or "default"' - string: name: runtests default: 'x86_64-host' description: 'Run toolchain testsuites: "yes", "no", "x86_64-host"' - bool: name: try_bootstrap default: 'true' description: 'Attempt to bootstrap GCC for compatible host and target combinations' - string: name: excludecheck default: 'binutils gdb' description: 'Do not run "make check" on these components' - bool: name: rebuild default: true description: 'Rebuild the toolchain even if results are already on logserver' - string: name: log_name default: '' description: 'Logname directory on logserver; leave empty for default' - bool: name: dont_fail default: false description: 'Do not fail the build' - string: name: log_server default: dev-01.tcwglab:/home/maxim.kuvyrkov/logs description: 'Log_Server' - string: name: targets default: 'cross_main cross_aux native_x86' description: 'Which target toolchains to build: cross_main cross_aux native_x86 native_armv8' - string: name: abe_branch default: refs/remotes/origin/bkk16 description: 'ABE revision to test' - bool: name: run_benchmark default: false description: 'Whether to run a benchmark for benchmarkable targets.' disabled: false node: master child-workspace: $target concurrent: true display-name: 'TCWG ZZZ Race Bernie' scm: - git: url: https://git-us.linaro.org/toolchain/abe.git refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/remotes/changes/* branches: - $abe_branch skip-tag: true shallow-clone: true wipe-workspace: false clean: before: true #Any changes in these axes may need to be reflected in the build triggers #under publishers, at end of file. axes: - axis: type: slave name: label values: - tcwg-x86_64-cam - tcwg-aarch64-build - axis: type: user-defined name: target values: - aarch64-linux-gnu - armv8l-linux-gnueabihf - arm-linux-gnueabi - arm-linux-gnueabihf - armeb-linux-gnueabihf - aarch64-none-elf - aarch64_be-none-elf - native - schroot-i386-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")) 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}' builders: - shell: | #!/bin/bash set -e set -x #Ensure that artifact_parameters is empty - must exist to be used #by inject step, but if it is empty we will not publish any #artifacts. Must exist before first exit. rm -f artifact_parameters touch artifact_parameters #Ensure that the properties file isn't lying around from some old #build - stops us from kicking off the wrong benchmark. rm -f bench_parameters touch bench_parameters if test "x${target}" = xarm-linux-gnueabihf || test "x${target}" = xaarch64-linux-gnu || test "x${target}" = xarmv8l-linux-gnueabihf; then toolchain="TOOLCHAIN-${target}" sysroot="SYSROOT-${target}" cat > bench_parameters < artifact_parameters << EOF TOOLCHAIN=${toolchain} SYSROOT=${sysroot} EOF fi - inject: #Create env vars used by achive step, below. properties-file: 'artifact_parameters' publishers: - archive: artifacts: '${TOOLCHAIN},${SYSROOT},source.tar.xz' only-if-success: true fingerprint: true allow-empty: true #Because JJB does not expose 'Use files in matrix child builds', we have #to copy the files to master and trigger from the copies. (We make sure #to initialize the files to empty so that we don't retrigger an old #benchmark by mistake.) #TODO: When we upgrade to a JJB that includes a fix for https://storyboard.openstack.org/#!/story/2000444 #we can simplify all this, and also stop hard-coding paths that Jenkins #should be deriving from the matrix. And we should then delete the comments #that this commit has inserted next to axes and the list of benchmarkable #targets in the shell, as they will be misleading. - copy-to-master: includes: - bench_parameters #destination: '/home/tcwg-buildslave/workspace/tcwg-race-bernie/native/$target/' - trigger-parameterized-builds: - project: tcwg-benchmark property-file: aarch64-linux-gnu/bench_parameters - project: tcwg-benchmark property-file: armv8l-linux-gnueabihf/bench_parameters - project: tcwg-benchmark property-file: arm-linux-gnueabihf/bench_parameters - workspace-cleanup: include: - "**/.git" dirmatch: true