Files
mo7sen 1f029fd69b
build-ci-image / image (push) Failing after 2m33s
Replaced apt packages with LunarG's Vulkan SDK
2026-05-06 01:52:35 +03:00

131 lines
2.6 KiB
Markdown

# evol-testbed
Reusable Gitea Actions container image for Evol C/C++/Vulkan builds.
Image:
```text
git.neosisyphus.com/evol3d/evol-testbed:latest
```
The image extends:
```text
catthehacker/ubuntu:act-latest
```
Included tools:
- Clang/LLVM 22
- `clang-format-22`
- `clang-tidy-22`
- `lld-22`
- `lldb-22`
- Meson
- Ninja
- Python 3 / pip / venv
- LunarG Vulkan SDK headers/tools
- `build-essential`
- `pkg-config`
- Git
## Build locally
```bash
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:
```bash
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
```bash
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:
```text
.gitea/workflows/build-ci-image.yml
```
builds and pushes the image on changes to `Dockerfile`, `.dockerignore`, or the workflow itself.
Required Gitea Actions secret:
```text
REGISTRY_PASSWORD
```
Use a Gitea token/password with package/container registry write permission.
Optional secret:
```text
REGISTRY_USERNAME
```
If `REGISTRY_USERNAME` is omitted, the workflow uses `$GITHUB_ACTOR`.
## Use from another Gitea project
```yaml
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
- `latest` may be cached by the runner unless `act_runner` is configured with `container.force_pull: true`.
- `vulkaninfo` may still fail on unusual runners, but Vulkan headers and build tools are installed. Use `pkg-config --modversion vulkan` as the compile-time check.