Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ce1dd61da | |||
| 1d3d77e8c9 |
@@ -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"
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user