63 lines
1.6 KiB
YAML
63 lines
1.6 KiB
YAML
name: Testing builds
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- testing
|
|
|
|
jobs:
|
|
test-and-build:
|
|
runs-on: godot
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
lfs: true
|
|
|
|
- name: Show Godot version
|
|
run: godot --version
|
|
|
|
- name: Import project
|
|
run: |
|
|
rm -rf .godot
|
|
godot --headless --path . --editor --import --quit --verbose
|
|
|
|
- name: Run all tests
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
mapfile -t tests < <(find tests -maxdepth 1 -type f -name 'test_*.gd' | sort)
|
|
test "${#tests[@]}" -gt 0
|
|
|
|
for test_file in "${tests[@]}"; do
|
|
echo "::group::${test_file}"
|
|
godot --headless --path . --script "res://${test_file}"
|
|
echo "::endgroup::"
|
|
done
|
|
|
|
- name: Build Android APK
|
|
run: |
|
|
mkdir -p build
|
|
godot --headless --path . --export-release "Android" build/owniverse-testing.apk
|
|
|
|
- name: Build Windows EXE
|
|
run: |
|
|
godot --headless --path . --export-release "Windows Desktop" build/owniverse-testing.exe
|
|
|
|
- name: Verify builds
|
|
run: |
|
|
test -s build/owniverse-testing.apk
|
|
test -s build/owniverse-testing.exe
|
|
ls -lh build/owniverse-testing.apk build/owniverse-testing.exe
|
|
|
|
- name: Upload testing builds
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: owniverse-testing-${{ github.sha }}
|
|
path: |
|
|
build/owniverse-testing.apk
|
|
build/owniverse-testing.exe
|
|
if-no-files-found: error
|
|
retention-days: 14
|