No description
  • Shell 87.6%
  • Dockerfile 12.4%
Find a file
Steffen Deusch 031e4b06a0
All checks were successful
build-systemimage / build-builder-image (push) Successful in 28s
build-systemimage / systemimage (push) Successful in 1h6m7s
upload v3
2026-04-15 13:37:15 +00:00
.forgejo/workflows upload v3 2026-04-15 13:37:15 +00:00
manifests Track droidmedia from Forgejo fork 2026-04-14 23:11:24 +00:00
scripts Use in-tree out directory for builds 2026-04-14 21:56:22 +00:00
Dockerfile initial commit 2026-04-14 16:38:13 +00:00
README.md Use in-tree out directory for builds 2026-04-14 21:56:22 +00:00

halium-build

This repository is a thin control repo for building the Halium systemimage target for tegu in Forgejo. It does not store the Android source tree. The workflow bootstraps and updates a persistent repo checkout under /shared/src/halium-build, publishes a reusable builder image, and then builds in the normal in-tree out/ directory.

What it builds

  • Base manifest: https://github.com/LineageOS/android.git
  • Branch: lineage-23.2
  • Lunch target: lineage_halium_arm64-bp4a-userdebug
  • Build command: mka systemimage

Repository layout

  • .forgejo/workflows/build-systemimage.yml: Forgejo workflow entrypoint
  • Dockerfile: halium-systemimage-builder container image definition
  • manifests/*.xml: local manifests layered on top of LineageOS
  • scripts/run-docker-build.sh: host-side wrapper that builds and runs the container with the right mounts
  • scripts/bootstrap-tree.sh: repo init and repo sync
  • scripts/build-systemimage.sh: actual Android build step

Runner requirements

  • A Forgejo runner label that can execute Docker commands. If your runner does not use ubuntu-latest, change runs-on in the workflow.
  • A host path at /shared. The workflow creates /shared/src/halium-build and uses it for the persistent source checkout.
  • SSH access from the runner to git.deusch.me:222.
  • A repository secret named REGISTRY_TOKEN with access to the Forgejo container registry.

SSH configuration

The workflow supports two ways to reach the private upstream repos:

  • Preferred for CI: set the repository secret SSH_KEY.
  • Fallback: let the runner user already have a usable ~/.ssh directory.

In both cases the wrapper script refreshes known_hosts for git.deusch.me port 222 before it runs repo sync.

Builder image publishing

The workflow publishes the builder image to git.deusch.me/ubports/halium-systemimage-builder.

  • latest is updated on main and master
  • a sanitized branch tag is published on other branches
  • a short commit tag is published on every run

The systemimage job pulls the commit-specific builder image created earlier in the same workflow.