mend
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:
@@ -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/
|
||||
@@ -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 }}."
|
||||
Reference in New Issue
Block a user