summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-29tcwg_bmk-build.sh: Add compatibility with older baseline resultsMaxim Kuvyrkov
Change-Id: I79dc695cc2d4955516fc2ab55dfed031501d0a6b
2020-05-28tcwg_bmk-build.sh: Rework details of arm/thumb mode selectionMaxim Kuvyrkov
... 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
2020-05-28round-robin.sh: Simplify "check" logic of build_abe()Maxim Kuvyrkov
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
2020-05-27tcwg_bmk-build.sh: Adjust build scoresMaxim Kuvyrkov
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
2020-05-27tcwg_bmk-build.sh: Fix loop waiting for benchmarking to finishMaxim Kuvyrkov
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
2020-05-27tcwg_gnu-build.sh: Fix detection of build failureMaxim Kuvyrkov
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
2020-05-27tcwg-update-llvmbot-containers.sh: Move aarch64 full and global-isel botsMaxim Kuvyrkov
... to tcwg-amp-03. This reduces load of linaro-armv8-01. Change-Id: Ie742cd2af0dc4db70744a2bb91e2025b9a8b5ebe
2020-05-26round-robin.sh: Fix one more artifact in build_abe()Maxim Kuvyrkov
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
2020-05-23tcwg-update-llvmbot-containers.sh: Move full and global-isel bots to AmperesMaxim Kuvyrkov
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
2020-05-22round-robin.sh (build_abe): Pass "--disable update" to ABEMaxim Kuvyrkov
... to avoid ABE updating sources. Change-Id: I82ef178a1dc1054b6642bd98335fcf013a425914
2020-05-22tcwg_bmk-build.sh/tcwg_gnu-build.sh:David Spickett
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
2020-05-22twcg_bmk-build.sh: Correct scope of build retDavid Spickett
The function runs in subshell so we were trying to return build_ret after that subshell had finished. Change-Id: I7baf15077451ca563dce09facf0131ceb38c8bc1
2020-05-20tcwg_bmk-build.sh: Always write benchmark results_id fileDavid Spickett
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
2020-05-20round-robin.sh: Fix "bootstrap check" build stepDavid Spickett
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
2020-05-20jenkins-helpers.sh: Fix run_step starting step logicDavid Spickett
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
2020-05-19jenkins-helpers.sh: Handle corrupted repos in clone_or_update_repo_no_checkoutMaxim Kuvyrkov
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
2020-05-18tcwg_bmk-build/tcwg_gnu-build: Add traceback printingDavid Spickett
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
2020-05-18start-container-docker.sh: Only try to remove containers that existDavid Spickett
The current code is causing docker to print "ERROR <...>", which isn't an error for us and confuses the Jenkins log. Change-Id: I902bfb7ca66d781b23726785852381e41e4a76e4
2020-05-18start-container-docker.sh: Fix cleanup of $WORKSPACE/.lockMaxim Kuvyrkov
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
2020-05-18jenkins-helpers.sh: Fix log_url unbound errorDavid Spickett
local only sets scope it needs a value to actually exist. Change-Id: I6a790da6022b4ad95e1c5534b325f4c170131b74
2020-05-15jenkins-helpers.sh: Clarify HANDLING failure messageDavid Spickett
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
2020-05-15jenkins-helpers.sh: Log run_step_init start and stop stepsDavid Spickett
So that we can figure out why some jobs are skipping every step. Change-Id: I097199a889372a7bc1195a9cc2f931cd507a43d7
2020-05-15jenkins-helpers.sh: Add log URL when running a stepDavid Spickett
Change-Id: I5e21cc78e7138054b4df4f16f2dd36a7d9e4ba62
2020-05-14tcwg_bmk/round-robin: Add assert_with_msg functionDavid Spickett
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
2020-05-13tcwg-start-container.sh: Support restarting container from itselfMaxim Kuvyrkov
... which is useful for "host" and "jenkins" containers. Change-Id: Id1b4ff181d31de791b3f8934ebcd3889a0d16610
2020-05-13tcwg-update-*-containers.sh: Restart containers only on image updateMaxim Kuvyrkov
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
2020-05-11sanity-check.sh: Scan files in the current working dirDavid Spickett
This is prep work for running sanity checks on bmk-scripts as well. Change-Id: I3a0a08c97c0daf256f6839055b6b574c83460e35
2020-05-08Revert "tcwg_bmk-build.sh: Use parallel8x4 and parallel8x1 bmk profiles for ↵Maxim Kuvyrkov
TX1s" This reverts commit 44804d02f22685b8bc015f1d9ef854b970d5d286. Reason for revert: tcwg-tx1-03 is back online. Change-Id: I701437e6d1c91fde5f8305c5374600f6c8ad2534
2020-05-06tcwg_bmk-build.sh: Use parallel8x4 and parallel8x1 bmk profiles for TX1sMaxim Kuvyrkov
... to workaround https://projects.linaro.org/browse/LSS-1293 . Change-Id: I504ddcb1186d2d2afe2b60b12be211fb23729fc7
2020-05-06tcwg-start-container.sh: Use temp fileMaxim Kuvyrkov
Change-Id: I4b645d4731f35c1b168dfffdf7bd3800a6eb98e5
2020-05-05jenkins-helpers.sh: Fix print_node_with_least_containersChristophe Lyon
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
2020-05-05jenkins-helpers.sh: Add pwd check functionDavid Spickett
Used in other scripts to check that pwd isnt / before deleting things. Change-Id: Id3e284a486f300c97e92f730e84183340c999dd9
2020-05-04abe-bisect*: Fix grep invocationsChristophe Lyon
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
2020-04-30round-robin.sh/tcwg_kernel-build.shDavid Spickett
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
2020-04-30start-container-docker.shDavid Spickett
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
2020-04-30Shellcheck fixes round 5David Spickett
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
2020-04-30Shellcheck fixes round 4David Spickett
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
2020-04-29tcwg-benchmark*.sh: Update to pass --hw_tags to bmk-scripts/Maxim Kuvyrkov
Change-Id: I49685c1938c44548f88928c7afa455a863af8076
2020-04-29tcwg-benchmark.sh: Remove unused @hw_type@ substitution from $results_idMaxim Kuvyrkov
Change-Id: I6530286516fc131980e4379399ca0fff00883f8f
2020-04-29tcwg-cleanup-stale-containers.shDavid Spickett
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
2020-04-28Shellcheck fixes round 3David Spickett
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
2020-04-28round-robin.sh: Don't define $PATH as localMaxim Kuvyrkov
=== local PATH foo="$PATH" === causes "PATH: unbound variable" error Change-Id: I3038449c7ee798b2cd3065e3b307bfa04cb80b72
2020-04-27jenkins-helpers.sh: Rework print_host_for_node to rely only on sshMaxim Kuvyrkov
Which gives us control over TCWG "DNS" when combined with https://review.linaro.org/c/ci/dockerfiles/+/34893 . Change-Id: Ia9b483f195936fa27422ecaa24a9c3d16c1b446a
2020-04-23Shellcheck fixes round 2David Spickett
Also update the sanity check script to include .job files. Change-Id: Ibf72d9ff346ff7b012d4e282a6ac8f3b7e73590d
2020-04-22Various shellcheck warning fixesDavid Spickett
First round of low hanging fruit from the files with the fewest warnings. Change-Id: I60ad57b5bfb2f0be9bb6506252c820f44d055200
2020-04-22round-robin.sh: Fix shellcheck warningsDavid Spickett
* 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
2020-04-22tcwg_bmk-build.sh: Various shellcheck fixesDavid Spickett
Change-Id: I8b2f10c368650fcd74ae261b0da406e3bc259bb3
2020-04-22tcwg_gnu-build.sh: Don't overwrite existing GCC repoMaxim Kuvyrkov
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
2020-04-20Shellcheck warning fixesDavid Spickett
(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
2020-04-20round-robin.sh: Handle Os vs Os LTO result IDsDavid Spickett
Regular benchmark jobs have one result ID per commit. Os vs Os LTO does two runs per commit, so print both. Change-Id: I1abd335b11e59fbd523ca0117015fa5bdcff6a05