name: Run Tests on: push: branches: [main, master] pull_request: branches: [main, master] jobs: test: name: Run GdUnit4 Tests runs-on: ubuntu-latest steps: - name: Checkout Repository uses: https://github.com/actions/checkout@v4 - name: Setup Godot 4.7 uses: https://github.com/godotengine/godot-action@v1 with: godot-version: 4.7 - name: Install GdUnit4 run: | # GdUnit4 is already included in the repo at addons/gdUnit4 # Just verify it exists if [ ! -d "addons/gdUnit4" ]; then echo "GdUnit4 not found, downloading..." wget https://github.com/godot-gdunit-labs/gdUnit4/releases/download/v6.2.1/gdUnit4-v6.2.1.zip unzip -q gdUnit4-v6.2.1.zip mv gdUnit4-v6.2.1/addons/gdUnit4 addons/gdUnit4 rm -rf gdUnit4-v6.2.1 gdUnit4-v6.2.1.zip fi - name: Run Tests (Headless) run: | # Run tests in headless mode godot --path . -s addons/gdUnit4/test.gd --gdunit.cli env: GODOT_HEADLESS: 1 - name: Upload Test Results if: always() uses: https://github.com/actions/upload-artifact@v3 with: name: test-results path: | test_results.xml test_results.html retention-days: 30 - name: Fail if Tests Failed run: | if [ ! -f "test_results.xml" ]; then echo "Test results not found!" exit 1 fi # Check if there were any failures in the JUnit XML if grep -q '