mbox

[v2,0/1] classes: add new retain class for retaining build results

Message ID cover.1722485084.git.paul.eggleton@linux.microsoft.com
State Not Applicable, archived
Headers show

Pull-request

https://git.yoctoproject.org/poky-contrib paule/retain

Message

Paul Eggleton Aug. 1, 2024, 4:10 a.m. UTC
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