1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
#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:
- CoremarkPro
- CPU2006
- CPU2000
- EEMBC
- fakebench
- choice:
name: TARGET_CONFIG
choices:
- Arndale
- Mustang
- Panda-ES
- Juno-A53
- Juno-A57
- KVM (x86_64)
- string:
name: RUN_FLAGS
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/<host>/<target>.
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
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, but in this case does not have to exist on host.
Examples --
/usr/bin/gcc
aarch64-linux-gnu-clang
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
description: |
Sysroot to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
- string:
name: COMPILER_FLAGS
description: SPEC benchmarks built -O3 -fno-common, unless you override that here.
- string:
name: MAKE_FLAGS
description: Flags to pass to make, when building the benchmark.
- string:
name: PUBLIC_KEY
description: 'Public key for main instance jobs.'
#TODO Remove this when we have the uinstance - at that point, we should be using the 'safe benchmarks' bundle stream
- string:
name: BUNDLE_STREAM
default: '/anonymous/bernie.ogden/'
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: bernie/benchmarking-uinstance-arbitrary
description: Branch of abe to drive the run
- string:
name: TIMEOUT
description: |
Timeout, in seconds from when the LAVA job starts to 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=192.168.16.2/RPC2/
#TODO Hack until there's a proper host in the uinstance
export HOST_DEVICE_TYPE=juno
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}"
#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
#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-uinstance.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'
|