Release #65
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
if: ${{ false }} # CM | |
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: ${{ false }} # CM | |
# if: needs.source.outputs.is_tag == 'true' | |
uses: ./.github/workflows/release-windows-store.yml | |
secrets: inherit | |
with: | |
version: ${{ needs.source.outputs.version }} | |
upload: | |
name: Upload | |
needs: | |
- source | |
- docs | |
- linux | |
- macos | |
- windows | |
- windows-store | |
if: ${{ false }} # CM | |
# 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') | |
runs-on: ubuntu-latest | |
# This job is empty, but ensures no upload job starts before all targets finished and are successful. | |
steps: | |
- name: Build completed | |
run: | | |
true | |
upload-cdn: | |
name: Upload (CDN) | |
needs: | |
- source | |
- upload | |
# As windows-store is condition, we need to check ourselves if we need to run. | |
# The always() makes sure the rest is always evaluated. | |
# Yes, you even need to do this if you yourself don't depend on the condition. | |
if: always() && needs.source.result == 'success' && needs.upload.result == 'success' | |
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 | |
- upload | |
# As windows-store is condition, we need to check ourselves if we need to run. | |
# The always() makes sure the rest is always evaluated. | |
# Yes, you even need to do this if you yourself don't depend on the condition. | |
# Additionally, only nightlies and releases go to Steam; not PRs. | |
# if: always() && needs.source.result == 'success' && needs.upload.result == 'success' && (needs.source.outputs.trigger_type == 'new-master' || needs.source.outputs.trigger_type == 'new-tag') | |
if: ${{ false }} # CM | |
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 | |
- upload | |
# As windows-store is condition, we need to check ourselves if we need to run. | |
# The always() makes sure the rest is always evaluated. | |
# Yes, you even need to do this if you yourself don't depend on the condition. | |
# Additionally, only releases go to GOG; not nightlies or PRs. | |
# if: always() && needs.source.result == 'success' && needs.upload.result == 'success' && needs.source.outputs.trigger_type == 'new-tag' | |
if: ${{ false }} # CM | |
uses: ./.github/workflows/upload-gog.yml | |
secrets: inherit | |
with: | |
version: ${{ needs.source.outputs.version }} | |
cm-upload-github: | |
name: Release GitHub assets | |
needs: | |
- source | |
- linux | |
- macos | |
- windows | |
if: needs.source.outputs.trigger_type == 'new-master' || needs.source.outputs.trigger_type == 'new-tag' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Download all bundles | |
uses: actions/download-artifact@v4 | |
- name: Release GitHub assets | |
uses: softprops/[email protected] | |
# if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
citymania-client-*/*.zip | |
citymania-client-*/*.xz | |
citymania-client-*/*.dmg | |
cm-upload-citymania: | |
name: Upload to CityMania | |
needs: | |
- source | |
- linux | |
- macos | |
- windows | |
# if: ${{ false }} | |
if: needs.source.outputs.trigger_type == 'new-master' || needs.source.outputs.trigger_type == 'new-tag' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Download all bundles | |
uses: actions/download-artifact@v4 | |
- name: Upload to CityMania | |
uses: appleboy/scp-action@master | |
# if: startsWith(github.ref, 'refs/tags/') | |
with: | |
host: ${{ secrets.UPLOAD_HOST }} | |
username: ${{ secrets.UPLOAD_USERNAME }} | |
key: ${{ secrets.UPLOAD_KEY }} | |
port: ${{ secrets.UPLOAD_PORT }} | |
source: "citymania-client-*/*.zip,citymania-client-*/*.xz,citymania-client-*/*.dmg" | |
strip_components: 1 | |
target: ${{ secrets.UPLOAD_PATH }} |