Skip to content

Master pipeline

Master pipeline #126

name: Master pipeline
on:
push:
branches:
- master
schedule:
- cron: '0 0 * * 1' # run once a week on monday midnight to prevent the cache from being cleared
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-trigger_on_push_master
cancel-in-progress: true
jobs:
setup-build-variables:
# Fake job to define outputs which can be used in the other jobs
name: πŸ› οΈ Setup build variables
runs-on: ubuntu-latest
steps:
- run: |
echo "Setup done"
outputs: # defined here explicitly, so it only needs to be defined here. All other workflows can just reference it
godot-kotlin-jvm-version: "0.11.0-4.3"
godot-version: "4.3-stable"
build-version: "0.11.0"
jvm-version: "17"
build-jvm:
name: β˜• Build Jvm
uses: ./.github/workflows/build_jvm.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
jvm-version: ${{ needs.setup-build-variables.outputs['jvm-version'] }}
build-android:
name: πŸ€– Build and Assemble Android
uses: ./.github/workflows/build_android.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
jvm-version: ${{ needs.setup-build-variables.outputs['jvm-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}
build-ios:
name: 🍏 Build iOS
uses: ./.github/workflows/build_ios.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-linux:
name: 🐧 Build Linux
uses: ./.github/workflows/build_linux.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-macos:
name: 🍎 Build macOS
uses: ./.github/workflows/build_macos.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-windows:
name: πŸͺŸ Build Windows
uses: ./.github/workflows/build_windows.yml
needs:
- setup-build-variables
with:
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
assemble-macos:
name: 🍎 Assemble macos
uses: ./.github/workflows/assemble_macos.yml
needs:
- setup-build-variables
- build-jvm
- build-macos
with:
godot-kotlin-jvm-version: ${{ needs.setup-build-variables.outputs['godot-kotlin-jvm-version'] }}
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}
assemble-ios:
name: 🍏 Assemble ios
uses: ./.github/workflows/assemble_ios.yml
needs:
- setup-build-variables
- build-ios
with:
godot-kotlin-jvm-version: ${{ needs.setup-build-variables.outputs['godot-kotlin-jvm-version'] }}
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}
assemble-linux:
name: 🐧 Assemble linux
uses: ./.github/workflows/assemble_linux.yml
needs:
- setup-build-variables
- build-jvm
- build-linux
with:
godot-kotlin-jvm-version: ${{ needs.setup-build-variables.outputs['godot-kotlin-jvm-version'] }}
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}
assemble-windows:
name: πŸͺŸ Assemble windows
uses: ./.github/workflows/assemble_windows.yml
needs:
- setup-build-variables
- build-jvm
- build-windows
with:
godot-kotlin-jvm-version: ${{ needs.setup-build-variables.outputs['godot-kotlin-jvm-version'] }}
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}
assemble-export-templates:
name: πŸ€–+🍏+🐧+🍎+πŸͺŸ Assemble export templates
uses: ./.github/workflows/assemble_export_templates.yml
needs:
- setup-build-variables
- build-android # uploads finished export template directly
- assemble-ios # export templates need to be packed into xcode project
- build-linux # uploads finished export template directly
- assemble-macos # export templates need to be packed into app
- build-windows # uploads finished export template directly
with:
godot-kotlin-jvm-version: ${{ needs.setup-build-variables.outputs['godot-kotlin-jvm-version'] }}
godot-version: ${{ needs.setup-build-variables.outputs['godot-version'] }}
build-version: ${{ needs.setup-build-variables.outputs['build-version'] }}