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/
79 lines
2.6 KiB
YAML
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"
|
|
|