Add a cache to improve performance and allow old index entries to be reused.
Also add locking so only one copy of the script can run at once.
Fix the path to the index template to be more stable in different execution environments.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ptest extraction should really happen separately to the index generation,
move it to do so.
Add code to only consider directories changed in the last 7 days to make
the script faster.
Add an indexing target to config.json to trigger the script.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's a chance that run-cvecheck and run-patchmetrics fail to push
because the remote repository has changed. Try to resolve this by pulling
and rebasing immediately before the push, and failing if we can't rebase.
[ YOCTO #15529 ]
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a minimal (although still substantial) build of meta-webosose for LG.
Because meta-webosose has complex layer appends and dependencies we need
to manually set BBFILE_PRIORITY and rewrite bblayer.conf to match what
their custom build scripts currently do.
Builds against oe-core master are known to not work at present, but this
will be backported to kirkstone which is the latest supported release.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes [YOCTO 15503]
When running autobuilder onm a testing or stable branch, the following
exception may occur:
Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/a-full/yocto-autobuilder-helper/scripts/send_qa_email.py", line 278, in <module>
send_qa_email()
File "/home/pokybuild/yocto-worker/a-full/yocto-autobuilder-helper/scripts/send_qa_email.py", line 207, in send_qa_email
generate_regression_report(querytool, targetrepodir, regression_base, regression_target, tempdir, args.results_dir, log)
File "/home/pokybuild/yocto-worker/a-full/yocto-autobuilder-helper/scripts/send_qa_email.py", line 93, in generate_regression_report
regreport = subprocess.check_output([querytool, "regression-report", base, target, '-t', resultdir])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib64/python3.11/subprocess.py", line 1883, in _execute_child
self.pid = _fork_exec(
^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not NoneType
This issue is due to base and target revision being None, but subprocess
module do not tolerate arguments being None,
Prevent the script from even trying to generate a regression report if we
are missing some info about revisions to compare.
Cc: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit 1dc77f5908 ("scripts: send_qa_email: add dry-run mode") updated
the get_regression_base_and_target to allow it to receive a test result
url. Unfortunately, this function's tests have not been updated
accordingly, so they currently fail because of the missing parameter.
Add a default url in test case and update the function call with this
default value.
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When send_qa_email is executed with python >= 3.12, the following warnings
are emitted:
/home/alexis/src/yocto_ci/yocto-autobuilder-helper/./scripts/send_qa_email.py:22: SyntaxWarning: invalid escape sequence '\d'
p = re.compile('\d{8}-\d+')
/home/alexis/src/yocto_ci/yocto-autobuilder-helper/./scripts/send_qa_email.py:67: SyntaxWarning: invalid escape sequence '\/'
tested_revision = re.match('refs\/tags\/.*\/\d+-g([a-f0-9]+)\/\d', latest_test_tag).group(1)
This warning has been introduced to replace the DeprecationWarning
initially raised on such escape code in string regex. Python 3.12 changelog
([1]) states that raw string must be used in this case. Update both
send_qa_email and its tests file.
[1] https://docs.python.org/dev/whatsnew/3.12.html#other-language-changes
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
AUH can produce broken recipes that can't complete do_fetch, and
this results in removal of files in DL_DIR, which races with
other builds, as seen here:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15540
[YOCTO #15540]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Added pico.css to make CSS improvements
- Added filters to the table for better readability of the test results. Filters were added for build type, branch and date
- Added pagination, which improved the performance of the website
- The html index template has been added as a separate file for better maintainability
Co-Authored-By: Ninette Adhikari <13760198+ninetteadhikari@users.noreply.github.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch clobbers each of the meta-openembedded/meta-* repro selftest
build directory after a successful reproducibility step and should
decrease maximum disk space used by this builder.
Previously, the full parent build directory would only be clobbered
after a successful full build (which is yet to be seen).
As a reminder, each reproducibility build directory contains 2 builds:
* for each recipe of the layer (and their recursive dependencies)
* without rm_work
* one with sstate, one without
As a result, I'd expect to find 10 times a build directory for each
recipe near the root of the dependency tree (linux-yocto, gcc, ...):
one for each meta-openembedded/meta-* layer. This would add up quick.
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This machine replaces qemu-generic-arm64, which was built on the AB until
60825ac6 landed.
Because the sbsa-ref machine boots a disk image inside qemu there is no
way for the static IPs to be passed to the kernel directly, which means
TAP networking fails. Work around this by always running the tests with
slirp networking.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was removed from meta-arm as it has been obsoleted by genericarm64.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For now, the known non-reproducible packages list is stored inside the
autobuilder config.json file. This is not ideal. Let's move this list
into each layers of meta-openembedded.
Since commit [0], non-repro-meta-*.inc files contain
KNOWN_NON_REPRO_META_* variables that contain list of known
non-reproducible package, we can use this for
OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES.
[0]: https://git.openembedded.org/meta-openembedded/commit/?id=d3751ce994dcc70be3009cbf982983d051c6f6db
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's very little to be gained by doing SDK tests for fvp-base, so
save some cycles by removing them.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This machine has been removed from meta-arm now that genericarm64 is in
meta-yocto-bsp.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A build of "stable/dunfell-nut" caused incorrect data to be added to the metrics
repo and resulted in script failures. Handle this situation better.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
the two html files, index.html and index-full.html,
got merged so we only need the json file with the complete set of data.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We're now using websockets for the hash equivalence server. Switch to a
buildtools tarball which contains it.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Patches should now be sent to yocto-patches@.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
By using CVE_DB_INCR_UPDATE_AGE_THRES = CVE_DB_INCR_UPDATE_AGE_THRES = 6h,
cve-check will do a NVD database full download if the database is older
than 6h or reuse it un-updated if its younger than 6h. Since the metrics
builder is scheduled every day, that will result in a daily
full-download.
That will workaround NVD API limitations were some updates may be missed
and the incrementaly updated database is not equivalent to a freshly
downloaded database.
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The default sorting was based on the list of seen times, but it should
be based on the latest seen time.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add an argument parser so that the use of the cache or verbose logging
can be enabled/disabled without having to edit the source code.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we plan to have better "binary distro" testing on the autobuilder
and we plan to primarily use ipk for this, having ipk based images available
as part of our builds is desireable.
Since we want systemd based images with ipk, it makes sense to leave standard
poky using rpm images but switch poky-altcfg to use ipk.
Whilst late in the release cycle, doing this now for scarthgap gives us a good
platform to build off in the long term too.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Those are the non-reproducible packages from:
https://autobuilder.yoctoproject.org/typhoon/#/builders/155/builds/13https://autobuilder.yoctoproject.org/typhoon/#/builders/155/builds/14
Only somewhat innocuous non-repro are added to
OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES (compile date in package, TMPDIR
path, ...).
Actual non-repros were not excluded :
* drbd-utils: a udev rule is either enabled or disabled
* apache2: a index.html is present or not in the package
* toybox-inittab: a getty is started or not on serial ports
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>