Gitea Actions CI image
This image extends Gitea/act's Ubuntu runner image:
catthehacker/ubuntu:act-latest
It includes:
- Clang/LLVM 22
- Meson
- Ninja
- Python 3 + pip + venv
- Vulkan development packages/tools
- Mesa Vulkan software/runtime drivers
- Git/build-essential/pkg-config
- Node/runtime pieces inherited from the act Ubuntu image, so JavaScript actions like
actions/checkoutkeep working
Files prepared
ci/Dockerfile
.dockerignore
.gitea/workflows/build-ci-image.yml
.gitea/workflows/build.yml
Required Gitea variables/secrets
In your repository or organization settings, add these Actions variables:
REGISTRY_HOST=git.neosisyphus.com
REGISTRY_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
CI_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
Add this Actions secret:
REGISTRY_PASSWORD=your-gitea-token-or-password
The token/password needs permission to publish packages/container images.
Optional: add this secret if your registry username is different from the Gitea Actions actor:
REGISTRY_USERNAME=your-gitea-username
If REGISTRY_USERNAME is not set, the workflow uses $GITHUB_ACTOR.
Build manually
docker build -t evol-testbed:latest -f ci/Dockerfile .
Test:
docker run --rm -it evol-testbed:latest bash -lc '
clang --version &&
meson --version &&
ninja --version &&
python3 --version &&
vulkaninfo --summary || true
'
Tag and push:
docker login git.neosisyphus.com
docker tag evol-testbed:latest git.neosisyphus.com/evol3d/evol-testbed:latest
docker tag evol-testbed:latest git.neosisyphus.com/evol3d/evol-testbed:clang22
docker push git.neosisyphus.com/evol3d/evol-testbed:latest
docker push git.neosisyphus.com/evol3d/evol-testbed:clang22
Build automatically in Gitea Actions
After setting the variables/secrets above, run:
.gitea/workflows/build-ci-image.yml
It builds and pushes:
${REGISTRY_IMAGE}:latest
${REGISTRY_IMAGE}:clang22
Use in normal builds
.gitea/workflows/build.yml is already prepared to use:
container:
image: ${{ vars.CI_IMAGE }}:clang22
If expressions do not work in container.image on your Gitea version, replace it with the literal image path:
container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22