- Shell 83.6%
- Dockerfile 16.4%
Use patched pulseaudio-modules-droid instead of minimal https://git.deusch.me/ubports/pulseaudio-module-droid-aidl. Reviewed-on: #4 |
||
|---|---|---|
| .forgejo/workflows | ||
| manifests | ||
| scripts | ||
| Dockerfile | ||
| README.md | ||
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 entrypointDockerfile:halium-systemimage-buildercontainer image definitionmanifests/*.xml: local manifests layered on top of LineageOSscripts/run-docker-build.sh: host-side wrapper that builds and runs the container with the right mountsscripts/bootstrap-tree.sh:repo initandrepo syncscripts/build-systemimage.sh: actual Android build stepscripts/build-libhybris-update.sh: glibc-side libhybris update archive build step
Runner requirements
- A Forgejo runner label that can execute Docker commands. If your runner does
not use
ubuntu-latest, changeruns-onin the workflow. - A host path at
/shared. The workflow creates/shared/src/halium-buildand uses it for the persistent source checkout. - SSH access from the runner to
git.deusch.me:222. - A repository secret named
REGISTRY_TOKENwith 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
~/.sshdirectory.
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.
latestis updated onmainandmaster- 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.
Libhybris Update Archive
The workflow also builds libhybris-16-update.tar.xz from the same repo-synced
Android tree. It extracts headers from ${HALIUM_SOURCE_DIR}, cross-builds
${HALIUM_SOURCE_DIR}/vendor/halium/libhybris/hybris for arm64, stages the
install under ${HALIUM_SOURCE_DIR}/out/libhybris-update/install, and uploads
${HALIUM_SOURCE_DIR}/out/libhybris-update/libhybris-16-update.tar.xz.
LIBHYBRIS_ANDROID_VERSION must be set to a full MAJOR.MINOR.PATCH version
for extract-headers.sh; the Forgejo workflow sets this to 16.0.0.
Set SKIP_LIBHYBRIS_UPDATE=1 to build only system.img.