|
1 | | -<p align="center"> |
2 | | - <a href="#build-framework"> |
3 | | - <img src="https://raw.githubusercontent.com/armbian/build/master/.github/armbian-logo.png" alt="Armbian logo" width="144"> |
4 | | - </a><br> |
5 | | - <strong>Linux Kernel Shallow Bundles</strong><br> |
6 | | -<br> |
7 | | -<a href=https://github.com/armbian/shallow/actions/workflows/git-trees-oras.yml><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/armbian/shallow/git-trees-oras.yml?logo=linux&label=Shallow%20Linux%20bundles&style=for-the-badge&branch=main"></a> |
8 | | - <br> |
| 1 | +<h2 align="center"> |
| 2 | + <img src="https://raw.githubusercontent.com/armbian/.github/master/profile/logosmall.png" alt="Armbian logo"> |
| 3 | + <br><br> |
| 4 | +</h2> |
9 | 5 |
|
10 | | -<br> |
11 | | -<a href=https://fosstodon.org/@armbian><img alt="Mastodon Follow" src="https://img.shields.io/mastodon/follow/109365956768424870?domain=https%3A%2F%2Ffosstodon.org&logo=mastodon&style=flat-square"></a> |
12 | | -<a href=http://discord.armbian.com/><img alt="Discord" src="https://img.shields.io/discord/854735915313659944?label=Discord&logo=discord&style=flat-square"></a> |
13 | | -<a href=https://liberapay.com/armbian><img alt="Liberapay patrons" src="https://img.shields.io/liberapay/patrons/armbian?logo=liberapay&style=flat-square"></a> |
14 | | -</p> |
| 6 | +This repository automates the preparation and distribution of **shallow Linux kernel bundles** optimized for use in CI/CD environments. |
15 | 7 |
|
16 | | -## Why we need this? |
| 8 | +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. |
17 | 9 |
|
18 | | -- Full, non-shallow clones of Linux kernel trees are multiple gigabytes in size, and take a lot of time to process. |
19 | | -- Shallow clones are much smaller, but cloning/fetching shallow trees impose a huge load on the git server |
20 | | -- `kernel.org` has [git bundles](https://git-scm.com/docs/git-bundle) available for download over HTTPS/CDN (simple file download) and [recommend their use](https://www.kernel.org/best-way-to-do-linux-clones-for-your-ci.html) - [instructions](https://www.kernel.org/cloning-linux-from-a-bundle.html) |
21 | | -- This repository does the heavy lifting. Grabbing bundles, updating them from live git servers, makes them shallow and ready for consumption. |
22 | | - - Produced shallow bundles are around 250 Mb as of 5.18.y |
23 | | - - Produced shallow bundles include all tags for the version involved, including `-rc` tags |
24 | | - - Scheduled runs update bundles daily, using GitHub actions, including caching. |
| 10 | +To address this, `kernel.org` provides [pre-generated git bundles](https://git-scm.com/docs/git-bundle), which are simple archive files downloadable via CDN. These are the recommended method for CI usage according to [kernel.org best practices](https://www.kernel.org/best-way-to-do-linux-clones-for-your-ci.html). |
| 11 | + |
| 12 | +This repository: |
| 13 | + |
| 14 | +- Automates downloading of upstream kernel bundles. |
| 15 | +- Updates them from live git sources. |
| 16 | +- Generates new, optimized shallow bundles for downstream use. |
| 17 | +- Ensures all relevant version tags are included (including `-rc` tags). |
| 18 | +- Executes scheduled daily updates using GitHub Actions and caching mechanisms. |
| 19 | + |
| 20 | +> Optimized shallow bundles are ~300 MB — significantly smaller than full clones and much faster to work with. |
0 commit comments