name: 🔗 GHA on: [push, pull_request, merge_group] concurrency: group: ci-${{ github.actor }}-${{ github.head_ref || github.run_number }}-${{ github.ref }}-runner cancel-in-progress: true jobs: # First stage: Only static checks, fast and prevent expensive builds from running. static-checks: if: '!vars.DISABLE_GODOT_CI' name: 📊 Static checks uses: ./.github/workflows/static_checks.yml # Second stage: Run all the builds and some of the tests. android-build: name: 🤖 Android needs: static-checks uses: ./.github/workflows/android_builds.yml ios-build: name: 🍏 iOS needs: static-checks uses: ./.github/workflows/ios_builds.yml linux-build: name: 🐧 Linux needs: static-checks uses: ./.github/workflows/linux_builds.yml macos-build: name: 🍎 macOS needs: static-checks uses: ./.github/workflows/macos_builds.yml windows-build: name: 🏁 Windows needs: static-checks uses: ./.github/workflows/windows_builds.yml web-build: name: 🌐 Web needs: static-checks uses: ./.github/workflows/web_builds.yml # Third stage: Run auxiliary tests using build artifacts from previous jobs. # Can be turned off for PRs that intentionally break compat with godot-cpp, # until both the upstream PR and the matching godot-cpp changes are merged. godot-cpp-test: name: 🪲 Godot CPP # This can be changed to depend on another platform, if we decide to use it for # godot-cpp instead. Make sure to move the .github/actions/godot-api-dump step # appropriately. needs: linux-build uses: ./.github/workflows/godot_cpp_test.yml