From 9d1b3e8a04c9844ac59489e57f4c71dde50f7ca8 Mon Sep 17 00:00:00 2001 From: ArthurErlich Date: Thu, 6 Aug 2026 19:50:34 +0200 Subject: [PATCH] feat: add custom godot-ci export-toolchain image Bakes export-template.yml's apt-get toolchain into an image extending barichello/godot-ci:4.7.1, plus a publish workflow to push it to this repo's Gitea package registry. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/publish.yml | 21 ++++++++++++++++++++ Dockerfile | 12 ++++++++++++ README.md | 37 ++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 .gitea/workflows/publish.yml create mode 100644 Dockerfile create mode 100644 README.md diff --git a/.gitea/workflows/publish.yml b/.gitea/workflows/publish.yml new file mode 100644 index 0000000..7dd3838 --- /dev/null +++ b/.gitea/workflows/publish.yml @@ -0,0 +1,21 @@ +name: Publish godot-ci image + +on: + push: + branches: [main] + paths: [Dockerfile] + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Log in to Gitea registry + run: echo "${{ secrets.REGISTRY_PUSH_PAT }}" | docker login git.arthurerlich.de -u haylan --password-stdin + + - name: Build and push + run: | + docker build -t git.arthurerlich.de/haylan/godot-ci:4.7.1 . + docker push git.arthurerlich.de/haylan/godot-ci:4.7.1 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8e53336 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM barichello/godot-ci:4.7.1 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + libfontconfig1 \ + build-essential scons pkg-config xz-utils curl \ + libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev \ + libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev libwayland-dev \ + mingw-w64 \ + blender \ + && update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix \ + && update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix \ + && rm -rf /var/lib/apt/lists/* diff --git a/README.md b/README.md new file mode 100644 index 0000000..c9386b2 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# godot-ci + +Custom image extending `barichello/godot-ci:4.7.1` with the Godot 4.7.1 export-template toolchain +pre-installed, so `Project4x`'s `export-template.yml` doesn't `apt-get install` it on every release +run. + +Built from the handoff spec at `Project4x`'s `docs/handoff/godot-ci-custom-image.md`. + +## Image + +`git.arthurerlich.de/haylan/godot-ci:4.7.1` + +Published automatically by `.gitea/workflows/publish.yml` on every push to `main` that touches +`Dockerfile`, or manually via workflow dispatch. + +A Godot version bump means updating `Dockerfile`'s `FROM` line and the tag in both the workflow +and this README together. + +## Auth + +The publish workflow pushes to this repo's Gitea package (container) registry using a **Personal +Access Token** stored as the repo secret `REGISTRY_PUSH_PAT` — the built-in per-run `GITEA_TOKEN` +cannot push to the package registry on this instance. + +- **Scope:** `write:package` (`read:package` too if the workflow ever needs to pull the image + back before tagging). +- **Owner:** TODO — fill in once the token is generated (Settings → Applications → Generate New + Token on the account that should own the published packages). + +## Consuming this image + +In `Project4x`'s `.gitea/workflows/export-template.yml`: + +```diff +- container: barichello/godot-ci:4.7.1 ++ container: git.arthurerlich.de/haylan/godot-ci:4.7.1 +```