mend
Build Godot Project (Linux) / build-linux (push) Successful in 30s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s

testing actions

Godot auto build

Godot auto build

Godot auto build

Godot auto build

Godot auto build

Finished adding items into the game along with auto build for linux.
This commit is contained in:
2026-06-21 21:45:54 -06:00
parent b4e374608d
commit 2d2485910f
17 changed files with 454 additions and 7 deletions
+82
View File
@@ -0,0 +1,82 @@
name: Build Godot Project (Linux)
on: [push]
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
# Step 1: Read project.godot ahead of time to get the version for our cache key
- name: Detect Godot Version
id: detect-version
run: |
echo "🔍 Parsing project.godot to identify the target engine version..."
VERSION_SHORT=$(grep "config/features" project.godot | sed -E 's/^[^\"]*\"([^\"]+)\".*/\1/' | xargs)
if [ -z "$VERSION_SHORT" ]; then
VERSION_SHORT="4.7"
fi
echo "VERSION_SHORT=${VERSION_SHORT}" >> $GITHUB_OUTPUT
echo "VERSION_URL=${VERSION_SHORT}-stable" >> $GITHUB_OUTPUT
echo "VERSION_FILE=${VERSION_SHORT}.stable" >> $GITHUB_OUTPUT
echo "🎯 Detected Target Version: $VERSION_SHORT"
# Step 2: Look for the cached Godot folder inside the Gitea Actions cache
- name: Cache Godot Engine and Templates
id: godot-cache
uses: actions/cache@v4
with:
path: .godot-cache-storage
key: godot-${{ steps.detect-version.outputs.VERSION_FILE }}-linux-v1
# Step 3: Run only on a Cache Miss to download the engine files
- name: Download Godot Engine and Templates (On Cache Miss)
if: steps.godot-cache.outputs.cache-hit != 'true'
run: |
VERSION_URL="${{ steps.detect-version.outputs.VERSION_URL }}"
mkdir -p .godot-cache-storage
echo "📥 Cache Miss. 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
move "Godot_v${VERSION_URL}_linux.x86_64" .godot-cache-storage/godot || mv "Godot_v${VERSION_URL}_linux.x86_64" .godot-cache-storage/godot
chmod +x .godot-cache-storage/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
mv templates/linux_release.x86_64 .godot-cache-storage/linux_release.x86_64
# Clean up download archives
rm godot.zip templates.zip
rm -rf templates/
# Step 4: Always map the binaries from our local workspace folder into their final execution paths
- name: Map Engine and Templates
run: |
VERSION_FILE="${{ steps.detect-version.outputs.VERSION_FILE }}"
# Copy engine executable out to project root
cp .godot-cache-storage/godot ./godot
# Inject template into user profile folder where Godot looks for them during exports
mkdir -p ~/.local/share/godot/export_templates/${VERSION_FILE}
cp .godot-cache-storage/linux_release.x86_64 ~/.local/share/godot/export_templates/${VERSION_FILE}/linux_release.x86_64
echo "🚀 Environment ready for export!"
# Step 5: Export the binary
- name: Export Linux Binary
run: |
mkdir -p build/linux
./godot --headless --export-release "Linux" build/linux/godot_number_factory.x86_64
# Step 6: Upload artifacts using Gitea-compatible v3 action
- name: Upload Linux Build Artifact
uses: actions/upload-artifact@v3
with:
name: linux-build
path: build/linux/
+19
View File
@@ -0,0 +1,19 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."