No description
Find a file
2025-09-30 10:10:44 +02:00
.github/workflows Split workflow auto-lint into bash and python linters 2025-07-07 16:24:15 +02:00
incuslib Fix issue in simplestreams prune 2025-07-20 21:11:25 +02:00
.gitignore Update gitignore 2024-10-12 15:29:00 +02:00
config_example.yml output can now be in the config file 2025-07-18 15:26:42 +02:00
image_builder.py Reset logging handlers before re-setting them 2025-09-30 10:10:44 +02:00
image_builder_multi.py output can now be in the config file 2025-07-18 15:26:42 +02:00
patch_gitlab_runner Fix execute permission on patch_gitlab_runner 2024-10-11 12:49:51 +02:00
pdm.lock Add pyproject and pdm.lock, update gitignore 2024-10-11 22:35:27 +02:00
prune_incus_simplestreams.py 🎨 Format Python code with Black 2024-11-06 11:26:15 +00:00
pyproject.toml Configure ruff 2025-07-07 15:15:46 +02:00
README.md Update readme for multi build 2025-07-18 15:23:25 +02:00
recipes 🎨 Auto format with Ruff and shfmt 2025-07-07 14:39:59 +02:00

Incus image builder for images to be used for the YunoHost dev env, app CI, core CI

Prepare workspace

Before anything, run ./patch_gitlab_runner to generate a small-ish gitlab runner debian package.

Also, the tool needs PyYaml so either install it in your distribution, or you can run pdm install to generate a relevant venv.

How to use

Build a single image

Run ./image_builder.py <version> <distribution> <variants>.

  • The version is the Debian version, bullseye or bookworm (or trixie etc).
  • The distribution is stable, unstable or testing.
  • The variants can be all, appci-only or build-and-lint.

all will build those images:

  • before-install - a Debian image with every YunoHost dependency installed, but not YunoHost itself (meant for core CI)
  • dev - ditto, but with YunoHost installed, but no postinstall yet (meant for ynh-dev)
  • appci- ditto, but with postinstall done (meant for app CI)
  • core-tests - ditto, but with a bunch of extra dependencies + pytest modules (meant for core CI)

appci-only will only rebuild appci on top of the existing dev image.

build-and-lint builds a "minimal" Debian image used by the core CI to build .debs, run black/flake/mypy linters etc. (meant for core CI)

Build multiple images at once

You can use the script image_builder_multi.py to build multiple images at once.

Write a configuration file, ee the file config_example.yml for reference, then run:

./image_builder_multi.py -c myconfig.yml -o output_repository