[x] Don't build packages within sandboxes, but keep previously installed packages in chroot?
This will hide dependency issues but might be unproblematic for a mere API rebuild of the whole distro.
[x] GHA sometimes fails due to disk errors.
Enable resuming from where we left. Don't rebuild a package, if its .deb already exists.
[x] Continuation of workflow
[x] Reuse existing debs artifact. Skip all packages already built.
[x] Install signal trap in generic.sh to output an error message on failure, cancellation, or timeout.
Having continuation in place, we can get rid off the splitted workflow. Just need to re-run.
[x] Use colcon package selection features, e.g. --packages-above-and-dependencies, to select a subset of packages to rebuild after an update. Provide an update workflow for this.
[x] Ensure rebuilding downstream packages.
[x] Optionally disable downstream rebuilding if the user knows that ABI will not break.
[x] Cache the chroot environment for reuse
We cannot use the environment settings as hash for cache key.
To reuse variables in multiple workflows, set them at the organization, repository, or environment levels and reference them using the vars context.
Any environment variables set in an env context defined at the workflow level in the caller workflow are not propagated to the called workflow.
For more information see "Variables" and "Contexts."
TODO
[x] Restore ici_step semantics: steps call unique functions and allow for a BEFORE_* and AFTER_* hook.
Speed
.cache/sbuild
. Extracting the tarball for each package build is costly. https://manpages.debian.org/testing/schroot/schroot.conf.5.de.html https://manpages.debian.org/testing/mmdebstrap/mmdebstrap.1.en.html https://manpages.ubuntu.com/manpages/jammy/en/man1/sbuild.1.html https://wiki.ubuntu.com/SimpleSbuild https://wiki.debian.org/sbuild#Using_unshare_with_mmdebstrap_.28no_root_needed.29.deb
already exists.debs
artifact. Skip all packages already built.generic.sh
to output an error message on failure, cancellation, or timeout.splitted
workflow. Just need to re-run.--packages-above-and-dependencies
, to select a subset of packages to rebuild after an update. Provide anupdate
workflow for this.Cache the chroot environment for reuseWe cannot use the environment settings as hash for cache key.
Features
TODO
ici_step
semantics: steps call unique functions and allow for aBEFORE_*
andAFTER_*
hook.deploy
a reusable workflow