diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 98b9224..23a46eb 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -3,20 +3,49 @@ on: [push] jobs: build-linux: - # Use standard Ubuntu runner environment (has Node.js for checkout & upload actions) runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v4 - - name: Export Linux Binary via Godot Container - # This forces just THIS step to run inside the Godot container - uses: docker://barichello/godot-ci:4.7 - with: - # 👇 Force the container to use bash to parse the block sequentially - entrypoint: /bin/bash - args: -c "mkdir -v -p build/linux && godot --headless --export-release 'Linux' build/linux/godot_number_factory.x86_64" + - name: Auto-Detect Godot Version and Setup Engine + run: | + echo "🔍 Parsing project.godot to identify the target engine version..." + + # Extracts the first value out of config/features (e.g., "4.7") + VERSION_SHORT=$(grep "config/features" project.godot | sed -E 's/.*"([^"]+)".*/\1/') + + if [ -z "$VERSION_SHORT" ]; then + echo "❌ Error: Could not determine Godot version from project.godot. Defaulting to 4.7" + VERSION_SHORT="4.7" + fi + + # Standardizes the formatting naming convention for paths vs engine filenames + VERSION_URL="${VERSION_SHORT}-stable" + VERSION_FILE="${VERSION_SHORT}.stable" + + echo "🎯 Detected Target Version: $VERSION_SHORT" + echo "----------------------------------------------" + + echo "📥 Downloading Godot Engine ($VERSION_URL)..." + curl -L "https://github.com/godotengine/godot/releases/download/${VERSION_URL}/Godot_v${VERSION_URL}_linux.x86_64.zip" -o godot.zip + unzip godot.zip + mv "Godot_v${VERSION_URL}_linux.x86_64" godot + chmod +x godot + + echo "📥 Downloading Export Templates ($VERSION_URL)..." + curl -L "https://github.com/godotengine/godot/releases/download/${VERSION_URL}/Godot_v${VERSION_URL}_export_templates.tpz" -o templates.zip + unzip templates.zip + + echo "🔧 Mapping Template Directories..." + mkdir -p ~/.local/share/godot/export_templates/${VERSION_FILE} + mv templates/linux_release.x86_64 ~/.local/share/godot/export_templates/${VERSION_FILE}/linux_release.x86_64 + + - name: Export Linux Binary + run: | + mkdir -p build/linux + ./godot --headless --export-release "Linux" build/linux/godot_number_factory.x86_64 - name: Upload Linux Build Artifact uses: actions/upload-artifact@v4