name: 🔗 All builds on: workflow_dispatch: inputs: godot-ref: description: A tag, branch or commit hash in the Godot repository. type: string default: 4.3 limboai-ref: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master godot-cpp-ref: description: A tag, branch or commit hash in the godot-cpp repository. type: string default: godot-4.3-stable jobs: cache-sha: name: Cache SHA runs-on: ubuntu-latest outputs: godot-sha: ${{ steps.cache-sha.outputs.godot-sha }} limboai-sha: ${{ steps.cache-sha.outputs.limboai-sha }} steps: - name: Clone Godot uses: actions/checkout@v4 with: repository: godotengine/godot ref: ${{ inputs.godot-ref }} - name: Clone LimboAI module uses: actions/checkout@v4 with: path: modules/limboai ref: ${{ inputs.limboai-ref }} - name: Cache SHA id: cache-sha run: | echo "godot-sha=$(git describe --tags --exact-match HEAD || git rev-parse HEAD)" >> "$GITHUB_OUTPUT" cd modules/limboai echo "limboai-sha=$(git describe --tags --exact-match HEAD || git rev-parse HEAD)" >> "$GITHUB_OUTPUT" android-build: name: 🤖 Android needs: cache-sha uses: ./.github/workflows/android.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} ios-build: name: 🍏 iOS needs: cache-sha uses: ./.github/workflows/ios.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} linux-build: name: 🐧 Linux needs: cache-sha uses: ./.github/workflows/linux.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} test-build: false macos-build: name: 🍎 macOS needs: cache-sha uses: ./.github/workflows/macos.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} windows-build: name: 🪟 Windows needs: cache-sha uses: ./.github/workflows/windows.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} test-build: false web-build: name: 🌐 Web needs: cache-sha uses: ./.github/workflows/web.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} gdextension: name: 🔌 GDExtension needs: cache-sha uses: ./.github/workflows/gdextension.yml with: godot-cpp-ref: ${{ inputs.godot-cpp-ref }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} test-build: false demo: name: 🎮️ Demo project needs: cache-sha uses: ./.github/workflows/demo.yml with: limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }} merge_templates: name: 📦 Merge templates if: ${{ always() }} needs: [ cache-sha, android-build, ios-build, linux-build, macos-build, windows-build, web-build, ] uses: ./.github/workflows/merge_templates.yml with: godot-ref: ${{ needs.cache-sha.outputs.godot-sha }} limboai-ref: ${{ needs.cache-sha.outputs.limboai-sha }}