#See http://docs.openstack.org/infra/jenkins-job-builder/genindex.html - job: name: tcwg-benchmark-monthly project-type: freestyle node: master display-name: 'TCWG Benchmark Monthly' description: 'Monthly release benchmarking' logrotate: daysToKeep: 30 numToKeep: 30 artifactDaysToKeep: 2 artifactNumToKeep: 4 block-downstream: true properties: - authorization: anonymous: - job-read - job-extended-read tcwg: - job-build - job-cancel parameters: - string: name: PREBUILT_32 description: | A prebuilt (32-bit) benchmark tarball as produced by abe or direct make invocation. Leave blank if you have supplied TOOLCHAIN_32.
If this option is given, no build will be performed. - string: name: TOOLCHAIN_32 description: | 32-bit toolchain to use. Give local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT_32.

Examples
/usr/bin/gcc
https://releases.linaro.org/components/toolchain/binaries/latest-5.1/arm-linux-gnueabihf/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar.xz
my.name@my.server:location_of_my_toolchain - string: name: SYSROOT_32 description: | 32-bit sysroot to use. Give local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT_32, or to let toolchain use whatever sysroot it uses by default.
For release benchmarking, should be set to our libc if you have supplied TOOLCHAIN_32, or left blank if you have supplied PREBUILT_32.

Examples
/home/foo/sysroots/sysroot_bar/
https://releases.linaro.org/components/toolchain/binaries/latest-5.1/arm-linux-gnueabihf/sysroot-linaro-glibc-gcc5.1-2015.08-arm-linux-gnueabihf.tar.xz
my.name@my.server:location_of_my_sysroot - string: name: PREBUILT_64 description: | A prebuilt (64-bit) benchmark tarball as produced by abe or direct make invocation. Leave blank if you have supplied TOOLCHAIN_64.
If this option is given, no build will be performed. - string: name: TOOLCHAIN_64 description: | 64-bit toolchain to use. Give local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT_64.

Examples
/usr/bin/gcc
http://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
my.name@my.server:location_of_my_toolchain - string: name: SYSROOT_64 description: | 64-bit sysroot to use. Give local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT_64, or to let toolchain use whatever sysroot it uses by default.
For release benchmarking, should be set to our libc if you have supplied TOOLCHAIN_64, or left blank if you have supplied PREBUILT_64.

Examples
/home/foo/sysroots/sysroot_bar/
https://releases.linaro.org/components/toolchain/binaries/latest-5.1/aarch64-linux-gnu/sysroot-linaro-glibc-gcc5.1-2015.08-aarch64-linux-gnu.tar.xz
my.name@my.server:location_of_my_sysroot wrappers: - timeout: timeout: 120 - workspace-cleanup builders: - shell: | #!/bin/bash set -eux set -o pipefail export LAVA_SERVER=192.168.16.2/RPC2/ export BUNDLE_SERVER=lava.tcwglab/RPC2/ #TODO: If benchmarking ever merges back to mainline abe, set this to a suitable branch export TESTDEF_REVISION=benchmarking #TODO Change the default of this when we have the uinstance - at that point, we should be using the 'safe benchmarks' bundle stream export BUNDLE_STREAM='/anonymous/bernie.ogden/' #Remove this as soon as the uinstance does not need it. export PUBLIC_KEY='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzlCPpuwMRSXZNq4Mut/GuitOhEturcsl9X1iNjOMGZXbtfBC8TCSXqotkziuYXpej1FCdXn3FEQsVw6Mw3I9Wq1p9okkgzVdsNzHAIob8ras/e9kOeJZGY5gSGBYf3t1MubAyaa033MJ+e3NRC4sbUmeeN3d9PD+Wc9QC3en9qfSpm6hh9EFHOHOjFk5+W0YZ83AL1PgalqL/hCN2/p9a8S1fsfDkfTgEh1XFIOiLds0fNzzmyXepxuA1n696iuSFMCIwmNcCfwRwRgt012UPgZu3avegYbDyijk8EtgFBuEA5OvX91BTHmaSjicsD9nJN63ms88l9OZMeTlPVjkD' #TODO Hack for testing purposes export RUN_FLAGS="--size test" export BENCHMARK=CPU2006 git clone --depth 1 -b ${TESTDEF_REVISION} https://git.linaro.org/toolchain/abe git clone --depth 1 https://git.linaro.org/ci/lci-build-tools for TARGET_CONFIG in juno-a57 juno-a53; do export TARGET_CONFIG for bitness in 64 32; do export LAVA_JOB_NAME="Monthly release benchmark (AArch${bitness} on ${TARGET_CONFIG})" #Run all of this in a subshell so that we enter each loop with #environment in the same state. ( indirect="PREBUILT_${bitness}" export PREBUILT="${!indirect:-}" indirect="TOOLCHAIN_${bitness}" export TOOLCHAIN=${!indirect:-} indirect="SYSROOT_${bitness}" export SYSROOT="${!indirect:-}" unset indirect if test ${bitness} -eq 32; then export TRIPLE=arm-linux-gnueabihf else export TRIPLE=aarch64-linux-gnu fi #Set variables for both post-build-lava and yaml-to-json tmpfile=`mktemp` bash -x ./abe/scripts/Benchmark.sh > "${tmpfile}" while read x; do export "$x" done < "${tmpfile}" rm "${tmpfile}" #Must be exported to be visible to yaml-to-json.py - env vars that #happen to be job params are already exported, so don't need this #Parameters for post-build-lava cat << EOF > post_build_lava_parameters_${TARGET_CONFIG}-${bitness} CUSTOM_JSON_URL=${BUILD_URL}/artifact/lava-jobdef-${TARGET_CONFIG}-${bitness}.json #Server to dispatch to, as opposed to server where bundle stream is. #post-build-lava takes responsibility for specifying a protocol. LAVA_SERVER=${LAVA_SERVER} #DEVICE_TYPE to placate pbl - we don't actually use it DEVICE_TYPE=${TARGET_DEVICE_TYPE} EOF #Convert YAML to JSON ./lci-build-tools/yaml-to-json.py \ abe/config/bench/jobdefs/template-uinstance.yaml > "lava-jobdef-${TARGET_CONFIG}-${bitness}.json" ) done done publishers: - archive: artifacts: lava-jobdef-*.json - trigger-parameterized-builds: - project: tcwg-post-build-lava condition: SUCCESS property-file: post_build_lava_parameters_juno-a57-64 - trigger-parameterized-builds: - project: tcwg-post-build-lava condition: SUCCESS property-file: post_build_lava_parameters_juno-a57-32 - trigger-parameterized-builds: - project: tcwg-post-build-lava condition: SUCCESS property-file: post_build_lava_parameters_juno-a53-64 - trigger-parameterized-builds: - project: tcwg-post-build-lava condition: SUCCESS property-file: post_build_lava_parameters_juno-a53-32 - email: recipients: 'bernie.ogden@linaro.org'