name: Release on: workflow_dispatch: inputs: ref: description: 'Ref to build (for Pull Requests, use refs/pull/NNN/head)' required: true repository_dispatch: # client_payload should be the same as the inputs for workflow_dispatch. types: - Build* release: types: - published jobs: source: name: Source uses: ./.github/workflows/release-source.yml secrets: inherit docs: name: Docs needs: source uses: ./.github/workflows/release-docs.yml secrets: inherit with: version: ${{ needs.source.outputs.version }} linux: name: Linux (Generic) needs: source uses: ./.github/workflows/release-linux.yml secrets: inherit with: survey_key: ${{ needs.source.outputs.survey_key }} macos: name: MacOS needs: source uses: ./.github/workflows/release-macos.yml secrets: inherit with: survey_key: ${{ needs.source.outputs.survey_key }} windows: name: Windows needs: source uses: ./.github/workflows/release-windows.yml secrets: inherit with: is_tag: ${{ needs.source.outputs.is_tag }} survey_key: ${{ needs.source.outputs.survey_key }} windows-store: name: Windows Store needs: - source - windows if: needs.source.outputs.is_tag == 'true' uses: ./.github/workflows/release-windows-store.yml secrets: inherit with: version: ${{ needs.source.outputs.version }} upload-cdn: name: Upload (CDN) needs: - source - docs - linux - macos - windows - windows-store # As windows-store is condition, we need to check ourselves if we need to run. # The always() makes sure the rest is always evaluated. if: always() && needs.source.result == 'success' && needs.docs.result == 'success' && needs.linux.result == 'success' && needs.macos.result == 'success' && needs.windows.result == 'success' && (needs.windows-store.result == 'success' || needs.windows-store.result == 'skipped') uses: ./.github/workflows/upload-cdn.yml secrets: inherit with: version: ${{ needs.source.outputs.version }} folder: ${{ needs.source.outputs.folder }} trigger_type: ${{ needs.source.outputs.trigger_type }} upload-steam: name: Upload (Steam) needs: - source - linux - macos - windows if: needs.source.outputs.trigger_type == 'new-master' || needs.source.outputs.trigger_type == 'new-tag' uses: ./.github/workflows/upload-steam.yml secrets: inherit with: version: ${{ needs.source.outputs.version }} trigger_type: ${{ needs.source.outputs.trigger_type }} upload-gog: name: Upload (GOG) needs: - source - linux - macos - windows if: needs.source.outputs.trigger_type == 'new-tag' uses: ./.github/workflows/upload-gog.yml secrets: inherit with: version: ${{ needs.source.outputs.version }}