Files
MusicPlayer/.gitea/workflows/gitea-build.yaml
T
Sansan c985a6ce5b Replace the broken test suite with working GdUnit4 tests
The previous tests never compiled: they used GUT's assert functions,
Godot 3 APIs and reassigned autoload functions, so no test ran.

- 90 tests: unit tests for the playlist, songs, player scoring, time
  formatting, search and the server client, plus integration tests
  that run MainWindow and SyncWindow against a fake server
- Keybind tests check that Alt+<number> and Ctrl+Alt+<number> keep
  following the player rows while players are added and removed
- run_tests.sh finds Godot and runs the suite headless (~10 seconds)
- CI runs the tests before the build job in gitea-build.yaml; the
  separate test.yml used a GitHub action that does not exist
- GdUnit4 is committed instead of ignored, since the project enables
  it, and .gitea/ is no longer ignored
- Exported builds leave out tests/ and addons/gdUnit4/
2026-10-06 08:32:56 +02:00

79 lines
2.6 KiB
YAML

#
# .gitea/workflows/gitea-build.yaml
#
#
name: "Build"
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
env:
GODOT_VERSION: 4.7
PROJECT_PATH: .
EXPORT_NAME: MusicPlayer
jobs:
# Runs before build in the same workflow, so the two never race for the runner
test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download Godot
run: |
curl -L -o godot.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip
unzip godot.zip
mv Godot_v$GODOT_VERSION-stable_linux.x86_64 godot
chmod +x godot
- name: Run tests
run: GODOT=./godot ./run_tests.sh
build:
needs: test
if: github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download Godot
run: |
#echo "https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip"
curl -L -o godot.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip
unzip godot.zip
mv Godot_v$GODOT_VERSION-stable_linux.x86_64 godot
chmod +x godot
- name: Download Godot Export Templates
run: |
#echo "https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_export_templates.tpz"
curl -L -o export_templates.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_export_templates.tpz
unzip export_templates.zip
- name: Install Export Templates
run: |
mkdir -p ~/.local/share/godot/export_templates/$GODOT_VERSION.stable
mv ./templates/* ~/.local/share/godot/export_templates/$GODOT_VERSION.stable
- name: Create build folder
run: |
mkdir -v -p build
- name: Windows Build
run: |
cd $PROJECT_PATH
./godot --headless --verbose --export-release "Windows Desktop" "build/$EXPORT_NAME.exe"
- name: Linux Build
run: |
cd $PROJECT_PATH
./godot --headless --verbose --export-release "Linux" "build/$EXPORT_NAME.x86_64"
# - name: MacOS Build
# run: |
# cd $PROJECT_PATH
# ./godot --headless --verbose --export-release "macOS" "build/$EXPORT_NAME.zip"