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 MESON_VERSION=latest \
-t "$REGISTRY_IMAGE:latest" \
-t "$REGISTRY_IMAGE:clang22" \
-f ci/Dockerfile .
- name: Push CI image
run: |
docker push "$REGISTRY_IMAGE:latest"
docker push "$REGISTRY_IMAGE:clang22"
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22
image: git.neosisyphus.com/evol3d/evol-testbed:latest
steps:
- uses: actions/checkout@v4
+1
View File
@@ -44,6 +44,7 @@ RUN set -eux; \
libvulkan-dev \
vulkan-tools \
vulkan-validationlayers \
mesa-vulkan-drivers \
glslang-tools \
spirv-tools \
spirv-headers; \
+3 -5
View File
@@ -13,6 +13,7 @@ It includes:
- 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
@@ -75,10 +76,8 @@ Tag and push:
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:clang22
docker push git.neosisyphus.com/evol3d/evol-testbed:latest
docker push git.neosisyphus.com/evol3d/evol-testbed:clang22
```
## Build automatically in Gitea Actions
@@ -93,7 +92,6 @@ It builds and pushes:
```text
${REGISTRY_IMAGE}:latest
${REGISTRY_IMAGE}:clang22
```
## Use in normal builds
@@ -102,12 +100,12 @@ ${REGISTRY_IMAGE}:clang22
```yaml
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:
```yaml
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
- Python 3 / pip / venv
- Vulkan development packages/tools
- Mesa Vulkan software/runtime drivers
- `build-essential`
- `pkg-config`
- Git
@@ -59,11 +60,10 @@ Image path:
git.neosisyphus.com/evol3d/evol-testbed
```
The pushed tags will be:
The pushed tag will be:
```text
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
```
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
latest
clang22
```
The important commands are:
@@ -218,13 +217,11 @@ The important commands are:
--build-arg LLVM_VERSION=22 \
--build-arg MESON_VERSION=latest \
-t "${{ vars.REGISTRY_IMAGE }}:latest" \
-t "${{ vars.REGISTRY_IMAGE }}:clang22" \
-f ci/Dockerfile .
- name: Push CI image
run: |
docker push "${{ vars.REGISTRY_IMAGE }}:latest"
docker push "${{ vars.REGISTRY_IMAGE }}:clang22"
```
---
@@ -326,11 +323,10 @@ In Gitea:
evol-testbed
```
Confirm these tags exist:
Confirm this tag exists:
```text
latest
clang22
```
---
@@ -347,7 +343,7 @@ It uses:
```yaml
container:
image: ${{ vars.CI_IMAGE }}:clang22
image: ${{ vars.CI_IMAGE }}:latest
```
If you set:
@@ -359,7 +355,7 @@ CI_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
then the workflow uses:
```text
git.neosisyphus.com/evol3d/evol-testbed:clang22
git.neosisyphus.com/evol3d/evol-testbed:latest
```
The key workflow shape is:
@@ -376,7 +372,7 @@ jobs:
runs-on: ubuntu-latest
container:
image: ${{ vars.CI_IMAGE }}:clang22
image: ${{ vars.CI_IMAGE }}:latest
steps:
- uses: actions/checkout@v4
@@ -417,14 +413,14 @@ If the build fails because the image name is invalid, replace this:
```yaml
container:
image: ${{ vars.CI_IMAGE }}:clang22
image: ${{ vars.CI_IMAGE }}:latest
```
with the literal image name:
```yaml
container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22
image: git.neosisyphus.com/evol3d/evol-testbed:latest
```
Then commit and push:
@@ -466,13 +462,13 @@ If your runner itself is Dockerized, make sure Docker credentials are available
On the runner host:
```bash
docker pull git.neosisyphus.com/evol3d/evol-testbed:clang22
docker pull git.neosisyphus.com/evol3d/evol-testbed:latest
```
Run it:
```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:
@@ -491,7 +487,7 @@ Expected results:
- `clang` should be version 22.
- `meson` 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:
@@ -517,7 +513,7 @@ jobs:
runs-on: ubuntu-latest
container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22
image: git.neosisyphus.com/evol3d/evol-testbed:latest
steps:
- uses: actions/checkout@v4
@@ -551,7 +547,6 @@ The image workflow will rebuild and push:
```text
latest
clang22
```
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:
```text
clang22
latest
```
consider immutable tags:
```text
clang22-v1
clang22-v2
clang22-2026-05
v1
v2
v2026-05
```
Example build command tag:
```yaml
-t "${{ vars.REGISTRY_IMAGE }}:clang22-v1"
-t "${{ vars.REGISTRY_IMAGE }}:v1"
```
Then use:
```yaml
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
container:
image: git.neosisyphus.com/evol3d/evol-testbed:clang22
image: git.neosisyphus.com/evol3d/evol-testbed:latest
```