Files
evol-testbed/ci/README.md
T
mo7sen 1ce1dd61da
build-ci-image / image (push) Successful in 2m24s
Remove clang22 image tag
2026-05-02 18:44:48 +03:00

2.2 KiB

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/checkout keep 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 push git.neosisyphus.com/evol3d/evol-testbed:latest

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

Use in normal builds

.gitea/workflows/build.yml is already prepared to use:

container:
  image: ${{ vars.CI_IMAGE }}:latest

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:latest