Age | Commit message (Collapse) | Author |
|
Change-Id: I79dc695cc2d4955516fc2ab55dfed031501d0a6b
|
|
... while keeping general logic the same. This approach sanity
checks that 2 configurations of cflags in *-vs-* configurations
are using the same mode.
To use different arm/thumb modes in *-vs-* configurations we would
need to build GCC and Glibc 2 times, which we could do, if required.
Change-Id: I3d9e6152b8b01f561e7e60557ccc680e99728103
|
|
Make "build_abe FOO" build FOO and make "build_abe check_FOO" run
FOO's testsuites. This also makes tcwg_gnu's bisections more
efficient, since we will ignore FOO's build problems in "check"
configurations.
Change-Id: I71c644e801828b94d880bed7fe440e4db3ffb40b
|
|
Don't bisect benchmark build/run failures in *-vs-*
configurations. These failures will also appear in non-vs
configurations, and will be bisected more efficiently.
Change-Id: Iad4a70a9b13e5509ff95e8dabde942a55f5c10b9
|
|
Remote_exec can exit before tcwg-benchmark-$hw job finishes,
and that's the reason why we loop until we see "Finished: "
on the job's console log.
Change-Id: Ib579a48e6a1e1f20d9f6d748efcf693df27d5c20
|
|
Right now when bootstrap fails we get score "0" from reset_artifacts,
and when bootstrap succeeds, but tests fail, we get same "0" from
"build_abe bootstrap". This makes us ignore bootstrap failures.
Fix by assigning reset_artifacts "-1" score.
Change-Id: I021c7f2c987634cde0a8052191955ac7c8a05f2e
|
|
... to tcwg-amp-03. This reduces load of linaro-armv8-01.
Change-Id: Ie742cd2af0dc4db70744a2bb91e2025b9a8b5ebe
|
|
Pass same fake git URL to abe in both build and check steps.
Before this patch we missed ".git" in the check step, which
caused ABE to try rebuild the component.
Change-Id: I0912854876b0054f413d168bd9152a2f530047a0
|
|
Move aarch64 full and global-isel bots to tcwg-amp-03 and armhf full
and global-isel bots to tcwg-amp-04.
Change-Id: Ie1192c3c908a540cb54494ad54ba90a6dad9a507
|
|
... to avoid ABE updating sources.
Change-Id: I82ef178a1dc1054b6642bd98335fcf013a425914
|
|
Mark expected exits
It is expected that commands run by
run_step can fail and return non zero.
This causes the build scripts to exit
early and print misleading traceback.
So that we only catch unexpected exits,
mark expected failures with a magic
return code. Only print traceback
when the code is different from this.
Change-Id: I8b92ca1cb941481d4daa8ab87ee74b2b394b24ac
|
|
The function runs in subshell so we were trying
to return build_ret after that subshell had finished.
Change-Id: I7baf15077451ca563dce09facf0131ceb38c8bc1
|
|
Before it was only written when the job failed.
(though the build number was in the log if you
looked hard enough)
This can be used to go from run_step failing,
to the log of the actual benchmark.
Change-Id: I8189518f948f9ac76d090ff635209a5e69762a98
|
|
When I fixed a shellcheck warning here I changed
an expression that previously would always
delete the build folders. To one that would only
do so when we were running a check step.
Without deleting the build folders you got this
in the "bootstrap check" step:
00:01:25 configure: loading cache ./config.cache
00:01:25 configure: error: `CC' has changed since the previous run:
00:01:25 configure: former value: `gcc'
00:01:25 configure: current value:
`armv8l-unknown-linux-gnueabihf-gcc'
(since the compiler built in "bootstrap" has
been added to the PATH)
The old behaviour works but only acidentally.
Instead we should only update the source checkouts
during non check steps. This means that ABE doesn't
see a change and try to reconfigure. With that,
there's no need for us to clean out the .stamp
files for a check step anymore.
Change-Id: Ifc5574fe422ae8a01618a1de02affceb7733ae0b
|
|
This if was originally written with -o -a but
changed to || and && to fix shellcheck warning:
https://github.com/koalaman/shellcheck/wiki/SC2166
Now we find out why shellcheck warns about that
because the replacement expression was incorrect
despite looking the same.
This:
X -o Y -a Z
Was converted to:
X || Y && Z
Which does:
(X || Y) && Z
But the orignal behaviour is:
X || (Y && Z)
Change-Id: I0bebd9c008e605953c0af8d26df15d811816ff14
|
|
In [1] we have a binutils repo corrupted, which prevents its update and
most git operations. Git fetch returns:
error: object file .git/objects/32/d1f47a126567f24be18e7cadf5d2490968c986 is empty
error: object file .git/objects/32/d1f47a126567f24be18e7cadf5d2490968c986 is empty
fatal: loose object 32d1f47a126567f24be18e7cadf5d2490968c986 (stored in .git/objects/32/d1f47a126567f24be18e7cadf5d2490968c986) is corrupt
fatal: The remote end hung up unexpectedly
This kind of problem happens due to Lab power outages, jenkins restarts,
jenkins node container restarts, and other infrastructure artifacts.
The solution is to remove a repo where a basic "git status" command fails.
[1] https://ci.linaro.org/job/tcwg_kernel-bisect-gnu-master-arm-next-allyesconfig/78/artifact/artifacts/build-baseline/03-build_abe-binutils/console.log/*view*/
Change-Id: I33cd22787a62c3759a950f3a1cc84d923f2f370c
|
|
The line number you get from the previous
message is confusing. For example:
ERROR at run_step:524
Means that something in the function run_step,
which was called from line 524, called exit.
Instead, add a Python style traceback that
shows the call stack with file, line and the
content of that line.
(though unfortunatley we can't get the line no.
of the exit itself)
Example traceback:
ERROR Traceback (most recent call last):
File: /tmp/foo.sh, line 37
foo # hey!
File: /tmp/foo.sh, line 32
bar # hi there
File: /tmp/foo.sh, line 1
(trap handler, 'exit' call line is unknown)
Change-Id: Id6a2734e2b5ef74d05cd51cdbde9a95e5d5a4b44
|
|
The current code is causing docker
to print "ERROR <...>", which isn't an error
for us and confuses the Jenkins log.
Change-Id: I902bfb7ca66d781b23726785852381e41e4a76e4
|
|
At the moment we add cleanup of $WORKSPACE/.lock only to v1 interface
due to
cat <<EOF
CONTAINER_CLEANUP=${CONTAINER_CLEANUP}; <lock_cleanup>
EOF
not updating /current/ value of CONTAINER_CLEANUP, so <lock_cleanup>
doesn't get added to ${prefix}container_cleanup() routine.
This patches fixes this and somewhat simplifies the whole cleanup logic.
Change-Id: I6b78e835876b6c1353b2a7501e3149c81ebbeefe
|
|
local only sets scope it needs a value to
actually exist.
Change-Id: I6a790da6022b4ad95e1c5534b325f4c170131b74
|
|
When a step fails and we carry on you get this:
RUNNING <step>
CARRYING ON after failure in <step>
HANDLING previous failure in <step2>
RUNNING <step2>
Which in context can be read to mean that <step> failed
then <step2> *also* failed. (especially if you don't know
to expect another RUN message)
Now we'll see:
HANDLING <step2> will handle previous failure
RUNNING <step2>
Change-Id: I52da2ce8ea976524f366fb590c230303f027c644
|
|
So that we can figure out why some jobs are
skipping every step.
Change-Id: I097199a889372a7bc1195a9cc2f931cd507a43d7
|
|
Change-Id: I5e21cc78e7138054b4df4f16f2dd36a7d9e4ba62
|
|
This acts like assert but prints a message
if the assert fails. This will be visible in
the Jenkins logs and give us a unique string
to look for in the abscence of traceback for
shell scripts.
Two instances of returning false in check_regression
have had echos added to them, instead of asserts.
This is because they are not hard failures,
and may be handled by the caller. (run_step)
I have only converted the tcwg-bmk relevant
scripts to assert_with_msg so far, as a proof
of concept.
Change-Id: I3b1badf09e4856c80b973ca8b23088626ed66b0a
|
|
... which is useful for "host" and "jenkins" containers.
Change-Id: Id1b4ff181d31de791b3f8934ebcd3889a0d16610
|
|
Restart host, jenkins node and llvmbot containers only if underlying
docker image has changed. This allows us to simplify management of
persistent infrastructure containers (host, jenkins node and llvmbot
containers) by triggering update job, say, every day, instead of
monitoring dockerfiles.git repo for changes.
Change-Id: I27ecb27a9d1d4266d68e6fdfcdae98772fa7884d
|
|
This is prep work for running sanity checks
on bmk-scripts as well.
Change-Id: I3a0a08c97c0daf256f6839055b6b574c83460e35
|
|
TX1s"
This reverts commit 44804d02f22685b8bc015f1d9ef854b970d5d286.
Reason for revert: tcwg-tx1-03 is back online.
Change-Id: I701437e6d1c91fde5f8305c5374600f6c8ad2534
|
|
... to workaround https://projects.linaro.org/browse/LSS-1293 .
Change-Id: I504ddcb1186d2d2afe2b60b12be211fb23729fc7
|
|
Change-Id: I4b645d4731f35c1b168dfffdf7bd3800a6eb98e5
|
|
We iterate over $testers as an array of node names, but it is defined
as a space-separated string, so we currently iterate only once and
$tester contains all the relevant node names instead of only one at a
time.
This is silent because print_host_for_node considers only its first
parameter, which happens to be the first node in the list. This is
fine until that node is offline, so we exit the loop with an error
during the first iteration.
Fix by using $testers as a string variable.
Change-Id: I9ffe1253894697f7324d43170e7bf48b566e324b
|
|
Used in other scripts to check that pwd
isnt / before deleting things.
Change-Id: Id3e284a486f300c97e92f730e84183340c999dd9
|
|
A previous shellcheck cleanup patch broke the grep -w XXX *.YYY | wc
-l commands because grep -wc XXX *.YYY also reports the names of the
files scanned by grep.
We want only the total number of matches, so we switch to:
cat *.YYY | grep -wc XXX
Change-Id: I64c54011042d8870e484ab81d24a5ff49b6163d5
|
|
When looking for errors, exclude other
uses of grep looking for errors.
Without this we get job names with the
entire grep line in the title.
We could still get spurious names
if there were no error lines found,
but at least they'll be shorter.
Change-Id: Iceb0279dff2bb51ff59977efaf3f0d523c91ce7c
|
|
Fix shellcheck warnings.
Don't change the usage of DOCKER,
as we rely on it splitting on space
to get the correct commands.
Add shebang and disable unused var
warning for generated container.sh
script.
Change-Id: Ia4617f6eeaec4de507adbcf106f7272d246cc217
|
|
Quote command line args in tcwg_bmk-build.
Remove the manual list of shellcheck
excludes now that we've settled on
a newer version that supports --severity.
Change-Id: I102ea9bad1ac6245885c410edf3410b13b0727c6
|
|
Fixes for:
https://github.com/koalaman/shellcheck/wiki/SC2207
Are using the bash 4.x 'mapfile' syntax where the
input to the array is seperated by newlines.
If it's separated by spaces we use 'read' instead.
Support for selecting libc in MakeRelease.job was
removed in 3fa23da28ad73d0fe4b512c4aab269b5280a6650.
So remove references to "libc" which were expanding
to nothing anyway.
In tcwg-llvm-common.sh PROJECTS->BRANCHED_PROJECTS
is not strictly needed. However shellcheck can't
tell that the local PROJECTS in this file is
different from the PROJECTS in tcwg-llvm-build.sh.
Change-Id: Ie55968e3bf185d0bd5795fe48014636cda1009bc
|
|
Change-Id: I49685c1938c44548f88928c7afa455a863af8076
|
|
Change-Id: I6530286516fc131980e4379399ca0fff00883f8f
|
|
Don't add empty container names
to the list to remove. This was causing
us to run docker commands without
container names.
Change-Id: Iddf2c7aa268aec4a6254db1bf6e4c66850bb7dfa
|
|
Now using the version that's
present in the bionic images.
Meaning we have more warnings
but can also set the minimum
level to ignore a lot of them.
Fix the check for whether
shellcheck supports --severity.
(we have pipefail on, but we
expect shellcheck to fail in
this case)
Change-Id: I296b8554591b7d327c75393e3924184abc6512b7
|
|
===
local PATH
foo="$PATH"
===
causes "PATH: unbound variable" error
Change-Id: I3038449c7ee798b2cd3065e3b307bfa04cb80b72
|
|
Which gives us control over TCWG "DNS" when combined with
https://review.linaro.org/c/ci/dockerfiles/+/34893 .
Change-Id: Ia9b483f195936fa27422ecaa24a9c3d16c1b446a
|
|
Also update the sanity check
script to include .job files.
Change-Id: Ibf72d9ff346ff7b012d4e282a6ac8f3b7e73590d
|
|
First round of low hanging fruit
from the files with the fewest
warnings.
Change-Id: I60ad57b5bfb2f0be9bb6506252c820f44d055200
|
|
* Disable "referenced but not assigned"
for a bunch of parameters. These are
set by the wrappers around this script.
* Quote a bunch of expansions
* Use * to get a string from arrays
* When finding files split by null terminator
so it doesn't break for filenames with spaces.
* Declare and assign separately so we don't
hide return values.
* Ignore unsafe rm in prepare_abe since we know
we'll be in the abe folder.
* Add sanity check that pwd isn't / for build_llvm,
then ignore the warning from the rm.
Change-Id: I0b54e55946d56eef0d48b10c3ccfa30059809d46
|
|
Change-Id: I8b2f10c368650fcd74ae261b0da406e3bc259bb3
|
|
Clone GCC repo in no_regression_p() only when GCC is NOT
among the components we build. Otherwise we get GCC checkout
switched to "master" branch from whatever it was before.
This breaks bisection since "git bisect run" will use wrong value of
GCC clone's HEAD in its "git bisect good/bad" operations.
Change-Id: I5f736bcb046e955c55ed7c07c4a864098316a073
|
|
(all error/style level warnings)
SC1035: missing whitespace
SC2068: double quote array expansions
SC2145: argument mixes string and array
SC1066: Don't use $ on the left side of assignments
SC2126: Use grep -c instead of grep|wc
Change-Id: Ia53070d3e2c9aea9f626fdb7b2b5bfc9e1f8e682
|
|
Regular benchmark jobs have one result ID per
commit. Os vs Os LTO does two runs per commit,
so print both.
Change-Id: I1abd335b11e59fbd523ca0117015fa5bdcff6a05
|