Add Evol testbed CI image
This commit is contained in:
+106
@@ -0,0 +1,106 @@
|
||||
# Gitea Actions CI image
|
||||
|
||||
This image extends Gitea/act's Ubuntu runner image:
|
||||
|
||||
```text
|
||||
catthehacker/ubuntu:act-latest
|
||||
```
|
||||
|
||||
It includes:
|
||||
|
||||
- Clang/LLVM 22
|
||||
- Meson
|
||||
- Ninja
|
||||
- Python 3 + pip + venv
|
||||
- Vulkan development packages/tools
|
||||
- Git/build-essential/pkg-config
|
||||
- Node/runtime pieces inherited from the act Ubuntu image, so JavaScript actions like `actions/checkout` keep working
|
||||
|
||||
## Files prepared
|
||||
|
||||
```text
|
||||
ci/Dockerfile
|
||||
.dockerignore
|
||||
.gitea/workflows/build-ci-image.yml
|
||||
.gitea/workflows/build.yml
|
||||
```
|
||||
|
||||
## Required Gitea variables/secrets
|
||||
|
||||
In your repository or organization settings, add these **Actions variables**:
|
||||
|
||||
```text
|
||||
REGISTRY_HOST=git.neosisyphus.com
|
||||
REGISTRY_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
|
||||
CI_IMAGE=git.neosisyphus.com/evol3d/evol-testbed
|
||||
```
|
||||
|
||||
Add these **Actions secrets**:
|
||||
|
||||
```text
|
||||
REGISTRY_USERNAME=your-gitea-username
|
||||
REGISTRY_PASSWORD=your-gitea-token-or-password
|
||||
```
|
||||
|
||||
The token/password needs permission to publish packages/container images.
|
||||
|
||||
## Build manually
|
||||
|
||||
```bash
|
||||
docker build -t evol-testbed:latest -f ci/Dockerfile .
|
||||
```
|
||||
|
||||
Test:
|
||||
|
||||
```bash
|
||||
docker run --rm -it evol-testbed:latest bash -lc '
|
||||
clang --version &&
|
||||
meson --version &&
|
||||
ninja --version &&
|
||||
python3 --version &&
|
||||
vulkaninfo --summary || true
|
||||
'
|
||||
```
|
||||
|
||||
Tag and push:
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
After setting the variables/secrets above, run:
|
||||
|
||||
```text
|
||||
.gitea/workflows/build-ci-image.yml
|
||||
```
|
||||
|
||||
It builds and pushes:
|
||||
|
||||
```text
|
||||
${REGISTRY_IMAGE}:latest
|
||||
${REGISTRY_IMAGE}:clang22
|
||||
```
|
||||
|
||||
## Use in normal builds
|
||||
|
||||
`.gitea/workflows/build.yml` is already prepared to use:
|
||||
|
||||
```yaml
|
||||
container:
|
||||
image: ${{ vars.CI_IMAGE }}:clang22
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
Reference in New Issue
Block a user