This repository automates the preparation and distribution of shallow Linux kernel bundles optimized for use in CI/CD environments.
Full kernel trees can be several gigabytes in size and take considerable time and resources to clone. While shallow clones reduce this overhead, fetching them directly still places significant load on the source servers.
To address this, kernel.org provides pre-generated git bundles, which are simple archive files downloadable via CDN. These are the recommended method for CI usage according to kernel.org best practices.
This repository:
- Automates downloading of upstream kernel bundles.
- Updates them from live git sources.
- Generates new, optimized shallow bundles for downstream use.
- Ensures all relevant version tags are included (including
-rctags). - Executes scheduled daily updates using GitHub Actions and caching mechanisms.
Optimized shallow bundles are ~300 MB — significantly smaller than full clones and much faster to work with.
The same repository also prepares a combined u-boot git tree, for the same reason and via the same mechanism — but with no shallow variant, since the whole tree is small enough that one complete artifact serves every consumer.
It is seeded with:
- Mainline u-boot —
masterplus every tag. Nearly every Armbian board pins itsBOOTBRANCHto atag:vYYYY.MM, so shipping the tags is what makes those builds a cache hit rather than a fetch. - Vendor forks listed in the
EXTRA_TREEStable inwork_uboot_tree.sh, whose branches land underrefs/heads/<prefix>/. Currently just Radxa'snext-dev*, which therk35xx,rockchip-rk3588androckchip-rv1106families build from.
The tree is also the shared object store for every other u-boot fork Armbian builds (TI, SolidRun, NXP, Xilinx, hardkernel, orangepi-xunlong, CoreELEC, …) — those are not seeded, but they fetch into a tree that already holds mainline's history, so their fetches stay small.
The u-boot artifact is ~390 MB, single-packfile.
Published daily to ghcr.io/armbian/shallow/u-boot-git:latest, alongside the kernel ones.
