#See http://docs.openstack.org/infra/jenkins-job-builder/genindex.html - job: name: tcwg-benchmark project-type: freestyle node: master display-name: 'TCWG Benchmark' description: 'Dispatch TCWG benchmark jobs to LAVA' logrotate: daysToKeep: 30 numToKeep: 30 artifactNumToKeep: 1 properties: - authorization: anonymous: - job-read - job-extended-read bernie.ogden@linaro.org: - job-build - job-cancel - copyartifact: projects: tcwg-post-build-lava parameters: - choice: name: BENCHMARK choices: - CPU2006 - CPU2000 - EEMBC - fakebench - choice: name: TARGET_CONFIG choices: - Arndale - Mustang - Panda-ES - Juno-A53 - Juno-A57 - KVM (x86_64) - string: name: RUN_FLAGS default: '--size test --iterations 1 --tune base' description: | Flags passed to benchmark framework at runtime. Examples -- SPEC -- --size test --iterations 1 int (run 1 iteration of the int suite using the test workload) - string: name: PREBUILT description: | A prebuilt benchmark tarball as produced by abe or direct make invocation. If produced by abe, tar up the contents of build//. If produced by direct make, tar up the top-level git repository (but you can exclude the .git dir). If this option is given, no build will be performed and the compiler_flags and make_flags fields will be ignored. - string: name: TOOLCHAIN default: 'https://releases.linaro.org/components/toolchain/binaries/latest-5.1/aarch64-linux-gnu/gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu.tar.xz' description: | Toolchain to use - use local filesystem path, or formats interpretable by wget or scp/rsync. Must be supplied even when using a prebuilt tarball. Benchmarking scripts will use tools such as objdump. 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_benchmark - string: name: SYSROOT default: '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' description: | Sysroot to use - use local filesystem path, or formats interpretable by wget or scp/rsync. - string: name: COMPILER_FLAGS default: '-march=armv8-a' description: SPEC benchmarks built -O3 -fno-common, unless you override that here. - string: name: MAKE_FLAGS default: '' description: Flags to pass to make, when building the benchmark. - string: name: PUBLIC_KEY default: '' description: 'Public key for main instance jobs.' - string: name: BUNDLE_STREAM default: '' description: 'Bundle stream for main instance jobs.' #TODO Remove this when we have the uinstance - at that point, we should be using the benchmarking branch - string: name: TESTDEF_REVISION default: origin/benchmarking description: Branch of abe to drive the run wrappers: - timeout: timeout: 120 - workspace-cleanup builders: - shell: | #!/bin/bash set -eux set -o pipefail #Process TARGET_CONFIG TARGET_CONFIG="${TARGET_CONFIG,,}" if test x"${TARGET_CONFIG%% *}" = xkvm; then #" - fix syntax highlighting TARGET_CONFIG=kvm fi #TODO Change to uinstance server and 'safe benchmarks' user, when they exist export LAVA_SERVER=validation.linaro.org/RPC2/ git clone --depth 1 -b ${TESTDEF_REVISION} https://git.linaro.org/toolchain/abe #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}" #TODO Force the appropriate branch #TODO Force the appropriate uinstance stream, when uinstance exists #Must be exported to be visible to Benchmark.sh - env vars that #happen to be job params are already exported, so don't need this export BUNDLE_STREAM=/private/personal/bogden/ #Parameters for post-build-lava cat << EOF > post_build_lava_parameters CUSTOM_JSON_URL=${BUILD_URL}/artifact/lava-jobdef.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 git clone --depth 1 https://git.linaro.org/ci/lci-build-tools ./lci-build-tools/yaml-to-json.py \ abe/config/bench/jobdefs/template.yaml > lava-jobdef.json publishers: - archive: artifacts: lava-jobdef.json - trigger-parameterized-builds: - project: tcwg-post-build-lava condition: SUCCESS property-file: post_build_lava_parameters - email: recipients: 'bernie.ogden@linaro.org'