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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
#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
artifactNumToKeep: 4
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
bernie.ogden@linaro.org:
- job-build
- job-cancel
- copyartifact:
projects: tcwg-post-build-lava
parameters:
- string:
name: PREBUILT_32
description: |
A prebuilt benchmark tarball as produced by abe or direct make invocation.
Leave blank if you have supplied TOOLCHAIN.
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).
- string:
name: TOOLCHAIN_32
description: |
Toolchain to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT.
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_32
description: |
Sysroot to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT.
For release benchmarking, should be set to our libc if you have supplied TOOLCHAIN.
- string:
name: PREBUILT_64
description: |
A prebuilt benchmark tarball as produced by abe or direct make invocation.
Leave blank if you have supplied TOOLCHAIN.
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).
- string:
name: TOOLCHAIN_64
description: |
Toolchain to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT.
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_64
description: |
Sysroot to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
Leave blank if you have supplied PREBUILT.
For release benchmarking, should be set to our libc if you have supplied TOOLCHAIN.
- 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-stability
description: Branch of abe to drive the run
wrappers:
- timeout:
timeout: 120
- workspace-cleanup
builders:
- shell: |
#!/bin/bash
set -eux
set -o pipefail
#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
#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 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'
|