mo7sen 9101023921
build-ci-image / image (push) Successful in 2m57s
pkg-config setup for vulkan
2026-05-06 01:57:07 +03:00
2026-05-02 17:51:57 +03:00
2026-05-02 17:51:57 +03:00
2026-05-06 01:57:07 +03:00

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

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

  • 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.
S
Description
No description provided
Readme 93 KiB
Languages
Dockerfile 100%