Age | Commit message (Collapse) | Author |
|
Move code for update_baseline() from round-robin.sh to its own
script -- round-robin-baseline.sh. This allows us to move
update_baseline() step after notification step, which simplifies
notification logic. For the main workflow round-robin-baseline.sh
is now called from tcwg/round-robin.yaml.inc for successful builds.
The main reason for this reorganization is to simplify re-processing
of results.
Change-Id: I038bfc1ac68b1d6bb6dfd6f36dfb559d8e481583
|
|
Change-Id: I4a99ca2392270d3a7fe64bb2e18d867fa452e241
|
|
Change-Id: I046212911cdd4d50ed4590e5d1cfdce19e577422
|
|
When 'grep' in invoked with -q option, it exits with the first match,
and closes the input pipe. This will break the pipe and scripts running
with "-o pipefail" will get unexpected results.
Replace "<output> | grep -q", with "<output> | grep -q ... >/dev/null"
throught our scripts. Leave "grep -q ... <input_file>" intact, since
pipes are not involved.
Change-Id: I9438919276c0d0e235600384a979b511e1a4edff
|
|
Flang does not support cross-compiling, so switch building LLVM
to arm64/armhf host containers (done in yaml files). This
also simplifies LLVM benchmarking flow, since we no longer need
to build GNU toolchain to get target sysroot.
One restriction with this approach is that host/build and
target/benchmarking containers must use the same image.
Otherwise we may get library compatibility problems at benchmark
runtime. We are now linking applications against Ubuntu system
libraries.
Change-Id: Ide1a3f8f43ad23feeebd24f0b213b5c3f7e37122
|
|
Change-Id: I5118abb3ba34cbafae471e4299823a272fe98cf8
|
|
Change-Id: I975ee6570104ce7f46bdedfe1fc4c25a958cec73
|
|
Change-Id: Ic97dd373bcc46b770cb73df2ff88379549bdf5f6
|
|
... to produce a reasonable date to associate with results / artifacts.
Change-Id: I8cf41270abc5b642ca7a86aab0dcc0021852306b
|
|
... and simplify.
During round-robin.sh CHECK_REGRESSION stage :
- Creates file artifacts/dashboard/dashboard-generate.sh
Simple call to jenkins-scripts/dashboard-generate-squad.sh with the
proper parameters.
- And simply execute it.
This creates artifacts/dashboard/squad/ that contains all json files
and a scripts push to squad (dashboard-push-squad.sh)
During round-robin.sh UPDATE_BASELINE stage :
- Creates file artifacts/jenkins/dashboard-push.sh
Simple call to dashboard-push-squad.sh
During last steps of the jenkins projects :
- invoke artifacts/jenkins/dashboard-push.sh
After the job end :
- If we want to generate a dashboard info from an artifacts dir, we would
have to do :
$ artifacts/dashboard/dashboard-generate.sh
- If we want to push a dashboard results from an artifacts dir, we would
have to do :
$ artifacts/jenkins/dashboard-push.sh
- If we want to iterate over a full branch of base-artifacts, and for each
one generate and push the dashboard, you would ave to do :
$ jenkins-scripts/dashboard-push-one-branch.sh --top_artifacts <base-artifacts>
--baseline_branch <git branch>
Change-Id: I84b6da3460d1b9c6676a4ad93b2894e5bac968d5
|
|
Change-Id: I49b75de3d9090b19c103b2f047f0167ca9bc94e3
|
|
... to determine which components have changed, and how to proceed
with reduction or bisection of regressions.
Using git revisions will make detection of changes accurate,
instead of conservative -- before this change we assumed that
all components with "==rr[COMPONENT_git] url#sha1" settings have
new revisions, even when their "sha1" matched baseline "sha1".
Change-Id: I89211e5c0949b9d9b78d1d47f082a07e05c75e32
|
|
* rename "update" to "onsuccess"
* rename "reset" to "force"
* merge "push" into "force"
Change-Id: I3e2f960f6aaf1215e1c035a706a6ba9a8fb4450b
|
|
... from baseline/jenkins-full/bisect to build/bisect.
Change-Id: Ia9491ff53233a4a2f2c13e8bc958a3f7bede0f43
|
|
... and merge functionality into update_baseline() step.
Defer "git push" of baseline branches to the CI job (aka .yaml
file), which prevents non-CI executions of tcwg_*-build.sh scripts
from affecting state of CI loops.
Change-Id: I2d0485c5283aa92d1aefdbb2cdc97786f1679377
|
|
... to support using clang as HOSTCC.
Change-Id: I9d46ea6604f2c3ac48a195de8ee20f848568a3f5
|
|
Report the toolchain versions after locating them.
Signed-off-by: Kees Cook <keescook@chromium.org>
Change-Id: Icc137db66c5d40ec0120e7874a4ccfdf4b47d7c5
|
|
Change-Id: I103fe5f44dc483be2279858e8a54f417d7f5831e
|
|
Change-Id: I920dd4307fdbaaa45c29256c7d93d72979190dc2
|
|
Change-Id: I5878531b2187e0c9ad972d7fcdf643b65ee94ebc
|
|
Change-Id: I80bbc452bf0c10d25220dffe5e03252d06d4c668
|
|
Merge git "_url" and "_branch" specification into a single "_git"
argument that's constructed from "URL#BRANCH". This argument also
has a special value "baseline", which before was a special value
of "branch".
This rework makes handling of git references simpler and cleaner,
especially on the jenkins side.
Change-Id: I1c1c07629728c693b8350dfa1b61fe767d5b0a0b
|
|
Change-Id: I3a5592e85f4edede3f3854b2e9e915208c5ab15e
|
|
... by using ccache for linux builds.
Change-Id: Ifc7be118f3d5a5684f001d577d5f265c5d77e12d
|
|
When bisecting boot_linux() failure due to QEMU change we start
at build_abe-qemu step, and get result metric set to "-1" by build_llvm
step. Consequently, we consider boot_linux() failure as "uninteresting"
regression.
Change-Id: I364abb5ff828f1555fa82285dfaf58f9819d58e5
|
|
Change-Id: I3cbc9d522a31aa1d1de02c5122f66034ea8167ca
|
|
... since, apparently, clang needs stand-alone assembler for cases
that integrated assembler can't handle.
This used to work because we had binutils-arm-linux-gnueabihf and
binutils-aarch64-linux-gnu packages in the base docker images.
Change-Id: I0467b6c062d2e0f090c7e8628c07b6da07cdf4c9
|
|
... from x86_64-unknown-linux-gnu to x86_64-pc-linux-gnu after updating
config.guess in ABE.
Change-Id: I81333036fb8d183ad81e3fa5b5836645e8b6220f
|
|
Change-Id: I11155cfde4134e6662eeeee916e1f1882591e2c1
|
|
Change-Id: I61ecb7d40e205a7e7a3f7fe8d2ff8f6ddce4dde1
|
|
rr[components]"
This reverts commit 5a80a7248f90c25f983f7412d2432f8f1ad26368.
Reason for revert: This was a bad idea.
Change-Id: Ib9deb1247ded5714cccc88baf5535892e78f5baa
|
|
Change-Id: I1b2dbfb294e72bab2a14cbb91a4dec03b58a37fb
|
|
Change-Id: Ia67f3edddc29b2f2adb31ea31cbca4da843e3b9d
|
|
... instead of distro-provided version of QEMU.
Change-Id: I7d3d773b98c21813d07df84150a7028b8405a460
|
|
... which we removed from docker images in favour of building from source.
Change-Id: I828d78e2091f0b537207975bb19c23621521ad69
|
|
This is similar to what tcwg_bmk-build.sh already does.
Change-Id: Ifc7876307c164324fbe91049ea3030bd00a7d801
|
|
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
|
|
Used in other scripts to check that pwd
isnt / before deleting things.
Change-Id: Id3e284a486f300c97e92f730e84183340c999dd9
|
|
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
|
|
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
|
|
Also update the sanity check
script to include .job files.
Change-Id: Ibf72d9ff346ff7b012d4e282a6ac8f3b7e73590d
|
|
Change-Id: Iba2ba392d0ed6656548ead3245d4d7906bbdfbc0
|
|
The no_regression_p() predicate function is called from two steps:
check_regression and update_baseline. While we want no_regression_p
to output regression info during check_regression step, we don't want
that during update_baseline (during update_baseline no_regression_p
is called to compare current results against pre-baseline ones).
To fix the above we generate regression information in artifacts
directory of the current step, and copy it to the top-level only
during check_regression step.
Change-Id: Ib03d82f7afe60c406c7942f2fa086855df371171
|
|
Annotations provide human-readable comments and data on regressions.
For this we ignore all lines in "results" file starting with "#".
Change-Id: I31328fe2c13895a7379137b00891a9d2fc0a39d7
|
|
When a regression occurs after the build phase, don't include harmless
errors from the the build stage, and provide info from the test phase.
Change-Id: I75ce76e81ecbda4492bb49e7d765c25cac599f12
|
|
... to reduce spurious failures. Pass --foreground to timeout to
avoid TTY and signal artifacts, extend timeout (we get 30s boot time
on some kernels), and use non-multiplexed qemu serial.
Change-Id: I1e4574c815426e8d06d0e052e8eb4710771be26d
|
|
... and fix tcwg_bmk-build.sh's hook along the way. Bash's read()
accepts only complete lines, so we need to add newlines (using echo).
Change-Id: I62950c598872dd23bef4aea3d981f09c1fa14945
|
|
We are hitting the timeout on some of the good builds.
Change-Id: I3187d8cec3031f907b342eed65534879d6150f76
|
|
Currently we bisect regressions in all components equally,
even when it means running benchmarks to bisect binutils,
gcc or llvm internal build failures. This patch changes
that by starting bisections only when the build progressed
far enough to be interesting. For tcwg_kernel this means
to reach kernel build step; for tcwg_bmk this means to reach
benchmarking step; and for tcwg_gnu nothing is changing for now.
Change-Id: I1c7c15e84fc3fd219108b0af549594be6b381768
|
|
We need repo URLs only when not using baseline branches (baseline
branches are stored in known repos at git.l.o/toolchain/ci/*).
We refactor build_abe() to not rely on repo URLs, ABE only
uses last element of URLs path, so we fudge URL for it.
Change-Id: I19b6b5da51c8737b7176492e04e734f618d1d606
|