diff --git a/README.md b/README.md new file mode 100644 index 0000000..d46ce8f --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +# 🏗️ Godot Builder Image +This repository contains the `Dockerfile` definition for a custom build container used by our Gitea Runners. + +It is designed to cross-compile Godot Engine and GDExtension projects for **Linux (x86_64)** and **Windows (x86_64/MinGW)**. + +## 📦 What's Inside? +The image is based on Fedora 39 (to ensure up-to-date MinGW packages) and includes: + +- Build Systems: `SCons`, `Make`, `Automake`, `Git` + +- Compilers: `GCC (Linux)`, `MinGW-w64` (Windows Cross-compile), `Yasm` + +- Godot Dependencies: `X11`, `Mesa (GL)`, `ALSA`, `PulseAudio`, `uDev` + +## 🚀 How to Build & Publish +This process is automated. + +1. **Modify**: Make changes to the Dockerfile if you need new dependencies (e.g., Python, newer GCC). + +- **Push**: Commit and push your changes to the `main` branch. + +``` +Bash + +git add Dockerfile +git commit -m "Update builder dependencies" +git push origin main +``` +3. **Watch**: Go to the **Actions** tab in Gitea to see the build progress. + +4. **Verify**: Once green, go to your **Profile > Packages** tab. You should see a new version of `godot-builder` tagged `latest`. + +## 🛠 Manual Usage (Local Testing) +If you need to test this image locally before pushing: + +``` +Bash + +# Build locally +docker build -t godot-builder:local . + +# Test compiling a project locally + +docker run --rm -v $(pwd):/workspace -w /workspace godot-builder:local \ + scons platform=linux target=template_debug +``` + +## 📄 Dockerfile Reference +```Dockerfile + +FROM fedora:39 + +# Install Build Tools & Cross-Compilers +RUN dnf -y install \ + git scons make automake which yasm \ + gcc gcc-c++ kernel-headers \ + mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static \ + libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel \ + mesa-libGL-devel alsa-lib-devel pulseaudio-libs-devel libudev-devel \ + && dnf clean all + +CMD ["/bin/bash"] +``` \ No newline at end of file