name: CI on: push: pull_request: jobs: test: name: Lint & headless tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 # Mirror the local toolchain (godot --version → 4.7.beta). If this exact tag is not published, # pin it to the 4.7 beta the team actually runs; setup-godot maps this to a Godot release tag. - name: Install Godot 4.7 uses: chickensoft-games/setup-godot@v2 with: version: 4.7.0-beta use-dotnet: false include-templates: false - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install gdlint (gdtoolkit) run: pip install "gdtoolkit==4.*" # First run imports assets and builds the .godot cache (gitignored), so the headless tests can # actually load the .glb/.png resources they instance. Import can exit non-zero on warnings. - name: Import resources run: godot --headless --import continue-on-error: true - name: gdlint run: gdlint actors systems ui props levels tests - name: Headless tests env: GODOT: godot run: bash run_tests.sh --no-gameplay - name: Upload test output on failure if: failure() uses: actions/upload-artifact@v4 with: name: test-output path: tests/output/ if-no-files-found: ignore