ci: drop container: for Godot jobs, install via composite action
Build Puzzle Quest / Lint GDScript (push) Failing after 15s
Build Puzzle Quest / Lint GDScript (pull_request) Failing after 16s
Build Puzzle Quest / Validate GDScript (push) Successful in 47s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 50s
Build Puzzle Quest / Export Linux (push) Failing after 6m5s
Build Puzzle Quest / Export macOS (push) Failing after 7m5s
Build Puzzle Quest / Export Windows (push) Failing after 7m14s
Build Puzzle Quest / Export Android (push) Failing after 5m45s
Build Puzzle Quest / Export Linux (pull_request) Failing after 7m10s
Build Puzzle Quest / Export macOS (pull_request) Failing after 7m24s
Build Puzzle Quest / Export Windows (pull_request) Failing after 4m7s
Build Puzzle Quest / Export Android (pull_request) Failing after 3m3s
Build Puzzle Quest / Lint GDScript (push) Failing after 15s
Build Puzzle Quest / Lint GDScript (pull_request) Failing after 16s
Build Puzzle Quest / Validate GDScript (push) Successful in 47s
Build Puzzle Quest / Validate GDScript (pull_request) Successful in 50s
Build Puzzle Quest / Export Linux (push) Failing after 6m5s
Build Puzzle Quest / Export macOS (push) Failing after 7m5s
Build Puzzle Quest / Export Windows (push) Failing after 7m14s
Build Puzzle Quest / Export Android (push) Failing after 5m45s
Build Puzzle Quest / Export Linux (pull_request) Failing after 7m10s
Build Puzzle Quest / Export macOS (pull_request) Failing after 7m24s
Build Puzzle Quest / Export Windows (pull_request) Failing after 4m7s
Build Puzzle Quest / Export Android (pull_request) Failing after 3m3s
The first Gitea Actions runs failed at actions/checkout@v4 because barichello/godot-ci:4.6 ships without Node.js, which the JS-based checkout action requires. Rather than chase a Godot CI image that bundles Node, drop the container: blocks entirely: the default catthehacker/ubuntu:act-latest runner image already has Node / Python / git / JDK, and Godot is installed per-job from the official GitHub release. Pulled the install logic into a local composite action at .gitea/actions/setup-godot/ to avoid duplicating 15 lines of wget + unzip across the three Godot-using jobs. Inputs: - version (default 4.6) - templates (default false — export jobs flip to true) Other tweaks: - export-android now puts $ANDROID_HOME under $GITHUB_WORKSPACE so no sudo is needed; editor_settings-4.tres interpolates that path. - export-android writes the keystore under /tmp instead of /root (catthehacker runners don't run as root). README updated: jobs table reflects the new "Tooling installed by the job" column, prerequisites no longer mention the Docker image, and known-issue #1 is closed out with the dated fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+27
-19
@@ -9,7 +9,6 @@ on:
|
||||
|
||||
env:
|
||||
GODOT_VERSION: "4.6"
|
||||
GODOT_IMAGE: "barichello/godot-ci:4.6"
|
||||
|
||||
jobs:
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -18,11 +17,13 @@ jobs:
|
||||
validate:
|
||||
name: Validate GDScript
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: barichello/godot-ci:4.6
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup-godot
|
||||
with:
|
||||
version: ${{ env.GODOT_VERSION }}
|
||||
|
||||
- name: Import project (parses every .gd / .tscn)
|
||||
run: |
|
||||
godot --headless --import 2>&1 | tee /tmp/godot-import.log || true
|
||||
@@ -72,8 +73,6 @@ jobs:
|
||||
name: Export ${{ matrix.platform }}
|
||||
needs: validate
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: barichello/godot-ci:4.6
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -93,6 +92,11 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup-godot
|
||||
with:
|
||||
version: ${{ env.GODOT_VERSION }}
|
||||
templates: "true"
|
||||
|
||||
- name: Restore import cache
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
@@ -114,7 +118,7 @@ jobs:
|
||||
retention-days: 14
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4. Android export — needs JDK + Android SDK on top of the Godot image.
|
||||
# 4. Android export — Godot + JDK 17 + Android SDK installed in $HOME.
|
||||
# Provide ANDROID_KEYSTORE_BASE64 as a Gitea secret for a stable signature;
|
||||
# otherwise a fresh debug keystore is generated on each run.
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -122,21 +126,25 @@ jobs:
|
||||
name: Export Android
|
||||
needs: validate
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: barichello/godot-ci:4.6
|
||||
env:
|
||||
ANDROID_HOME: /opt/android-sdk
|
||||
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
||||
ANDROID_HOME: ${{ github.workspace }}/.android-sdk
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install JDK 17 + unzip
|
||||
- uses: ./.gitea/actions/setup-godot
|
||||
with:
|
||||
version: ${{ env.GODOT_VERSION }}
|
||||
templates: "true"
|
||||
|
||||
- name: Install JDK 17
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends openjdk-17-jdk wget unzip
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends openjdk-17-jdk
|
||||
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Install Android command-line tools + SDK
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p "$ANDROID_HOME/cmdline-tools"
|
||||
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O /tmp/cmdline.zip
|
||||
unzip -q /tmp/cmdline.zip -d "$ANDROID_HOME/cmdline-tools"
|
||||
@@ -149,14 +157,14 @@ jobs:
|
||||
env:
|
||||
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||
run: |
|
||||
if [ -n "$ANDROID_KEYSTORE_BASE64" ]; then
|
||||
echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > /root/debug.keystore
|
||||
if [ -n "${ANDROID_KEYSTORE_BASE64:-}" ]; then
|
||||
echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > /tmp/debug.keystore
|
||||
else
|
||||
keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android \
|
||||
-keystore /root/debug.keystore -storepass android \
|
||||
-keystore /tmp/debug.keystore -storepass android \
|
||||
-dname "CN=Android Debug,O=Android,C=US" -validity 9999
|
||||
fi
|
||||
sed -i 's@keystore/debug=".*"@keystore/debug="/root/debug.keystore"@g' export_presets.cfg
|
||||
sed -i 's@keystore/debug=".*"@keystore/debug="/tmp/debug.keystore"@g' export_presets.cfg
|
||||
|
||||
- name: Write Godot editor settings (Android SDK / JDK paths)
|
||||
run: |
|
||||
@@ -164,9 +172,9 @@ jobs:
|
||||
cat > ~/.config/godot/editor_settings-4.tres <<EOF
|
||||
[gd_resource type="EditorSettings" format=3]
|
||||
[resource]
|
||||
export/android/android_sdk_path = "/opt/android-sdk"
|
||||
export/android/android_sdk_path = "${ANDROID_HOME}"
|
||||
export/android/java_sdk_path = "/usr/lib/jvm/java-17-openjdk-amd64"
|
||||
export/android/debug_keystore = "/root/debug.keystore"
|
||||
export/android/debug_keystore = "/tmp/debug.keystore"
|
||||
export/android/debug_keystore_user = "androiddebugkey"
|
||||
export/android/debug_keystore_pass = "android"
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user