Compare commits

..

2 Commits

Author SHA1 Message Date
mo7sen 1ce1dd61da Remove clang22 image tag
build-ci-image / image (push) Successful in 2m24s
2026-05-02 18:44:48 +03:00
mo7sen 1d3d77e8c9 Add Mesa Vulkan drivers to CI image 2026-05-02 18:41:59 +03:00
5 changed files with 26 additions and 34 deletions
-2
View File
@@ -44,10 +44,8 @@ jobs:
--build-arg LLVM_VERSION=22 \ --build-arg LLVM_VERSION=22 \
--build-arg MESON_VERSION=latest \ --build-arg MESON_VERSION=latest \
-t "$REGISTRY_IMAGE:latest" \ -t "$REGISTRY_IMAGE:latest" \
-t "$REGISTRY_IMAGE:clang22" \
-f ci/Dockerfile . -f ci/Dockerfile .
- name: Push CI image - name: Push CI image
run: | run: |
docker push "$REGISTRY_IMAGE:latest" docker push "$REGISTRY_IMAGE:latest"
docker push "$REGISTRY_IMAGE:clang22"
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22 image: git.neosisyphus.com/evol3d/evol-testbed:latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
+1
View File
@@ -44,6 +44,7 @@ RUN set -eux; \
libvulkan-dev \ libvulkan-dev \
vulkan-tools \ vulkan-tools \
vulkan-validationlayers \ vulkan-validationlayers \
mesa-vulkan-drivers \
glslang-tools \ glslang-tools \
spirv-tools \ spirv-tools \
spirv-headers; \ spirv-headers; \
+3 -5
View File
@@ -13,6 +13,7 @@ It includes:
- Ninja - Ninja
- Python 3 + pip + venv - Python 3 + pip + venv
- Vulkan development packages/tools - Vulkan development packages/tools
- Mesa Vulkan software/runtime drivers
- Git/build-essential/pkg-config - Git/build-essential/pkg-config
- Node/runtime pieces inherited from the act Ubuntu image, so JavaScript actions like `actions/checkout` keep working - Node/runtime pieces inherited from the act Ubuntu image, so JavaScript actions like `actions/checkout` keep working
@@ -75,10 +76,8 @@ Tag and push:
docker login git.neosisyphus.com 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: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:latest
docker push git.neosisyphus.com/evol3d/evol-testbed:clang22
``` ```
## Build automatically in Gitea Actions ## Build automatically in Gitea Actions
@@ -93,7 +92,6 @@ It builds and pushes:
```text ```text
${REGISTRY_IMAGE}:latest ${REGISTRY_IMAGE}:latest
${REGISTRY_IMAGE}:clang22
``` ```
## Use in normal builds ## Use in normal builds
@@ -102,12 +100,12 @@ ${REGISTRY_IMAGE}:clang22
```yaml ```yaml
container: container:
image: ${{ vars.CI_IMAGE }}:clang22 image: ${{ vars.CI_IMAGE }}:latest
``` ```
If expressions do not work in `container.image` on your Gitea version, replace it with the literal image path: If expressions do not work in `container.image` on your Gitea version, replace it with the literal image path:
```yaml ```yaml
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22 image: git.neosisyphus.com/evol3d/evol-testbed:latest
``` ```
+21 -26
View File
@@ -30,6 +30,7 @@ It includes:
- Ninja - Ninja
- Python 3 / pip / venv - Python 3 / pip / venv
- Vulkan development packages/tools - Vulkan development packages/tools
- Mesa Vulkan software/runtime drivers
- `build-essential` - `build-essential`
- `pkg-config` - `pkg-config`
- Git - Git
@@ -59,11 +60,10 @@ Image path:
git.neosisyphus.com/evol3d/evol-testbed git.neosisyphus.com/evol3d/evol-testbed
``` ```
The pushed tags will be: The pushed tag will be:
```text ```text
git.neosisyphus.com/evol3d/evol-testbed:latest git.neosisyphus.com/evol3d/evol-testbed:latest
git.neosisyphus.com/evol3d/evol-testbed:clang22
``` ```
--- ---
@@ -201,11 +201,10 @@ The image build workflow is:
.gitea/workflows/build-ci-image.yml .gitea/workflows/build-ci-image.yml
``` ```
It logs into your registry, builds the image, and pushes two tags: It logs into your registry, builds the image, and pushes this tag:
```text ```text
latest latest
clang22
``` ```
The important commands are: The important commands are:
@@ -218,13 +217,11 @@ The important commands are:
--build-arg LLVM_VERSION=22 \ --build-arg LLVM_VERSION=22 \
--build-arg MESON_VERSION=latest \ --build-arg MESON_VERSION=latest \
-t "${{ vars.REGISTRY_IMAGE }}:latest" \ -t "${{ vars.REGISTRY_IMAGE }}:latest" \
-t "${{ vars.REGISTRY_IMAGE }}:clang22" \
-f ci/Dockerfile . -f ci/Dockerfile .
- name: Push CI image - name: Push CI image
run: | run: |
docker push "${{ vars.REGISTRY_IMAGE }}:latest" docker push "${{ vars.REGISTRY_IMAGE }}:latest"
docker push "${{ vars.REGISTRY_IMAGE }}:clang22"
``` ```
--- ---
@@ -326,11 +323,10 @@ In Gitea:
evol-testbed evol-testbed
``` ```
Confirm these tags exist: Confirm this tag exists:
```text ```text
latest latest
clang22
``` ```
--- ---
@@ -347,7 +343,7 @@ It uses:
```yaml ```yaml
container: container:
image: ${{ vars.CI_IMAGE }}:clang22 image: ${{ vars.CI_IMAGE }}:latest
``` ```
If you set: If you set:
@@ -359,7 +355,7 @@ CI_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
then the workflow uses: then the workflow uses:
```text ```text
git.neosisyphus.com/evol3d/evol-testbed:clang22 git.neosisyphus.com/evol3d/evol-testbed:latest
``` ```
The key workflow shape is: The key workflow shape is:
@@ -376,7 +372,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: ${{ vars.CI_IMAGE }}:clang22 image: ${{ vars.CI_IMAGE }}:latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -417,14 +413,14 @@ If the build fails because the image name is invalid, replace this:
```yaml ```yaml
container: container:
image: ${{ vars.CI_IMAGE }}:clang22 image: ${{ vars.CI_IMAGE }}:latest
``` ```
with the literal image name: with the literal image name:
```yaml ```yaml
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22 image: git.neosisyphus.com/evol3d/evol-testbed:latest
``` ```
Then commit and push: Then commit and push:
@@ -466,13 +462,13 @@ If your runner itself is Dockerized, make sure Docker credentials are available
On the runner host: On the runner host:
```bash ```bash
docker pull git.neosisyphus.com/evol3d/evol-testbed:clang22 docker pull git.neosisyphus.com/evol3d/evol-testbed:latest
``` ```
Run it: Run it:
```bash ```bash
docker run --rm -it git.neosisyphus.com/evol3d/evol-testbed:clang22 bash docker run --rm -it git.neosisyphus.com/evol3d/evol-testbed:latest bash
``` ```
Inside the container: Inside the container:
@@ -491,7 +487,7 @@ Expected results:
- `clang` should be version 22. - `clang` should be version 22.
- `meson` should print a version. - `meson` should print a version.
- `ninja` should print a version. - `ninja` should print a version.
- `vulkaninfo --summary` may fail if the CI machine has no GPU/display/runtime Vulkan driver. That is usually okay for compile-only CI as long as Vulkan headers/tools are installed. - `vulkaninfo --summary` should usually find Mesa's software Vulkan driver. It may still fail on unusual container/runner setups; that is okay for compile-only CI as long as Vulkan headers/tools are installed.
Exit: Exit:
@@ -517,7 +513,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22 image: git.neosisyphus.com/evol3d/evol-testbed:latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -551,7 +547,6 @@ The image workflow will rebuild and push:
```text ```text
latest latest
clang22
``` ```
Your normal builds will use the updated image next time they run. Your normal builds will use the updated image next time they run.
@@ -563,31 +558,31 @@ Your normal builds will use the updated image next time they run.
Instead of only using: Instead of only using:
```text ```text
clang22 latest
``` ```
consider immutable tags: consider immutable tags:
```text ```text
clang22-v1 v1
clang22-v2 v2
clang22-2026-05 v2026-05
``` ```
Example build command tag: Example build command tag:
```yaml ```yaml
-t "${{ vars.REGISTRY_IMAGE }}:clang22-v1" -t "${{ vars.REGISTRY_IMAGE }}:v1"
``` ```
Then use: Then use:
```yaml ```yaml
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22-v1 image: git.neosisyphus.com/evol3d/evol-testbed:v1
``` ```
This avoids surprise breakage when `clang22` or `latest` changes. This avoids surprise breakage when `latest` changes.
--- ---
@@ -612,5 +607,5 @@ The most important final workflow line is:
```yaml ```yaml
container: container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22 image: git.neosisyphus.com/evol3d/evol-testbed:latest
``` ```