#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.
build/<host>/<target>
..git
dir).TOOLCHAIN_32
.PREBUILT_32
./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.PREBUILT_32
, or to let toolchain use whatever sysroot it uses by default.TOOLCHAIN_32
, or left blank if you have supplied PREBUILT_32
./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.
build/<host>/<target>
..git
dir).TOOLCHAIN_64
.PREBUILT_64
./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.PREBUILT_64
, or to let toolchain use whatever sysroot it uses by default.TOOLCHAIN_64
, or left blank if you have supplied PREBUILT_64
./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'