Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ce1dd61da | |||
| 1d3d77e8c9 |
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -44,6 +44,7 @@ RUN set -eux; \
|
||||
libvulkan-dev \
|
||||
vulkan-tools \
|
||||
vulkan-validationlayers \
|
||||
mesa-vulkan-drivers \
|
||||
glslang-tools \
|
||||
spirv-tools \
|
||||
spirv-headers; \
|
||||
|
||||
+3
-5
@@ -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
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user