main
evol-testbed
Reusable Gitea Actions container image for Evol C/C++/Vulkan builds.
Image:
git.neosisyphus.com/evol3d/evol-testbed:latest
The image extends:
catthehacker/ubuntu:act-latest
Included tools:
- Clang/LLVM 22
clang-format-22clang-tidy-22lld-22lldb-22- Meson
- Ninja
- Python 3 / pip / venv
- LunarG Vulkan SDK headers/tools
build-essentialpkg-config- Git
Build locally
docker build -t evol-testbed:latest .
# Optional: choose a different LunarG Vulkan SDK version
# docker build --build-arg LUNARG_SDK_VERSION=1.4.309.0 -t evol-testbed:latest .
Test locally:
docker run --rm -it evol-testbed:latest bash -lc '
clang --version &&
clang++ --version &&
meson --version &&
ninja --version &&
python3 --version &&
pkg-config --modversion vulkan &&
vulkaninfo --summary || true
'
Push manually
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
Automatic publishing
The workflow at:
.gitea/workflows/build-ci-image.yml
builds and pushes the image on changes to Dockerfile, .dockerignore, or the workflow itself.
Required Gitea Actions secret:
REGISTRY_PASSWORD
Use a Gitea token/password with package/container registry write permission.
Optional secret:
REGISTRY_USERNAME
If REGISTRY_USERNAME is omitted, the workflow uses $GITHUB_ACTOR.
Use from another Gitea project
name: build
on:
push:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
container:
image: git.neosisyphus.com/evol3d/evol-testbed:latest
steps:
- uses: actions/checkout@v4
- name: Check toolchain
run: |
clang --version
clang++ --version
meson --version
ninja --version
python3 --version
pkg-config --modversion vulkan
vulkaninfo --summary || true
- name: Configure
run: meson setup build
- name: Build
run: meson compile -C build
Use the fully-qualified image path. Do not use only evol-testbed:latest; Docker will look on Docker Hub or for a local image instead of your Gitea registry.
Notes
latestmay be cached by the runner unlessact_runneris configured withcontainer.force_pull: true.vulkaninfomay still fail on unusual runners, but Vulkan headers and build tools are installed. Usepkg-config --modversion vulkanas the compile-time check.
Description
Languages
Dockerfile
100%