classes: add new retain class for retaining build results
Add a fairly simple class to tar up the work directory on task failure
to a configurable location - useful when the build environment is
ephemeral (e.g. an autobuilder/build pipeline). The directories that
are retained can be configured, and you can also choose to save
directories on every build as well if desired.
[This is a significant reworking of a prototype I sent as an RFC back
in 2020 (AKA "workdir_save"). Changes since then include deferring
tarball creation until the end, more config flexibility, and the
addition of test cases.]
Changes since v1:
* Use ;prefix= instead of : to specify tarball prefix, to be consistent
with other similar usages and avoid potential confusion with overrides
* Use prefix of "workdir" for default work directory tarballs
* Fix dir name within tarball to not have .tar.gz extension
* oe-selftest: fix test_retain_misc to be deterministic (should solve
failures seen on the autobuilder) and tweak tests for robustness in a
few places
* oe-selftest: add detail to failure messages in test_retain_misc and
test_retain_failure
The following changes since commit 662396533177b72cc1d83e95841b27f7e42dcb20:
create-spdx-3.0/populate_sdk_base: Add SDK_CLASSES inherit mechanism to fix tarball SPDX manifests (2024-07-26 12:26:24 +0100)
are available in the git repository at:
https://git.yoctoproject.org/poky-contrib paule/retain
https://git.yoctoproject.org/poky-contrib/log/?h=paule/retain
Paul Eggleton (1):
classes: add new retain class for retaining build results
meta/classes-global/retain.bbclass | 182 +++++++++++++++++++++++++
meta/lib/oeqa/selftest/cases/retain.py | 241 +++++++++++++++++++++++++++++++++
2 files changed, 423 insertions(+)
create mode 100644 meta/classes-global/retain.bbclass
create mode 100644 meta/lib/oeqa/selftest/cases/retain.py