Igor Pecovnik 555d784766 git2info: cache Makefile bodies by sha1, fall back off git.kernel.org
The JSON matrix job fans out over dozens of workers, and every kernel
artifact that misses the memoize cache fetches a Makefile over HTTP to
read VERSION/PATCHLEVEL/SUBLEVEL/NAME. For the mainline source those all
went to git.kernel.org's cgit, which sheds load: 16 parallel requests
measured 10x HTTP 200 and 6x HTTP 503. The retry loop then made it worse
by sleeping a fixed 5s, so workers that collided once collided again on
every attempt, and the run died with a bare "failed to fetch".

Three changes:

Cache Makefile bodies under cache/memoize/makefile-body/<sha1>. A
commit's Makefile can never change, so entries are immutable and need no
TTL, unlike the memoized dict around them which expires because branches
move. The path is inside cache/memoize, which CI already persists and
chowns, so no workflow change is needed. This also lets OFFLINE_WORK
serve a cached body instead of failing outright, so its guard moves to
where the cache misses.

Give each source a list of candidate URLs rather than one. Every repo on
git.kernel.org is mirrored on kernel.googlesource.com at the same path
minus the trailing ".git", with raw blobs base64-encoded behind
?format=TEXT. Mainline now fetches from googlesource first -- the host we
already clone from, which took 16/16 without complaint -- keeping
git.kernel.org as backup. The tuna/bfsu mirrors keep git.kernel.org
first, since googlesource is unreachable where those are chosen.

Report the HTTP status in the warning and jitter the retry delay, so a
recurrence is diagnosable and collided workers de-synchronize.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-08-29 20:22:15 +02:00
2026-02-09 00:28:39 +01:00
2026-08-26 19:57:21 +02:00

Armbian logo

Purpose of This Repository

The Armbian Linux Build Framework creates customizable OS images based on Debian or Ubuntu for single-board computers (SBCs) and embedded devices.

It builds a complete Linux system including kernel, bootloader, and root filesystem, giving you control over versions, configuration, firmware, device trees, and system optimizations.

The framework supports native, cross, and containerized builds for multiple architectures (x86_64, aarch64, armhf, riscv64) and is suitable for development, testing, production, or automation.

Looking for prebuilt images? Use Armbian Imager — the easiest way to download and flash Armbian to your SD card or USB drive. Available for Linux, macOS, and Windows.

Quick Start

git clone https://github.com/armbian/build
cd build
./compile.sh

Build demonstration

Build Host Requirements

Hardware

  • RAM: ≥8GB (less with KERNEL_BTF=no)
  • Disk: ~50GB free space
  • Architecture: x86_64, aarch64, or riscv64

Operating System

  • Native builds: Armbian/Debian 13 (Trixie)
  • Containerized: Any Docker-capable Linux
  • Windows: WSL2 with Armbian/Debian 13 (Trixie)

Software

  • Superuser privileges (sudo or root)
  • Up-to-date system (outdated Docker or other tools can cause failures)

Resources

  • Documentation — Comprehensive guides for building, configuring, and customizing
  • Website — News, features, and board information
  • Blog — Development updates and technical articles
  • Forums — Community support and discussions

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines on reporting issues, submitting changes, and contributing code.

Support

Community Forums

Get help from users and contributors on troubleshooting, configuration, and development. 👉 forum.armbian.com

Real-time Chat

Join discussions with developers and community members on IRC or Discord. 👉 Community Chat

Paid Consultation

For commercial projects, guaranteed response times, or advanced needs, paid support is available from Armbian maintainers. 👉 Contact us

Contributors

Thank you to everyone who has contributed to Armbian!

Contributors

Armbian Partners

Our partnership program supports Armbian's development and community. Learn more about our Partners.

S
Description
Armbian Linux build framework generates custom Debian or Ubuntu image for x86, aarch64, riscv64 & armhf
Readme GPL-2.0
1,021 MiB
Languages
Shell 67.2%
Python 11.8%
GSC 8.6%
Batchfile 4.4%
C 3.4%
Other 4.5%