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