Files @ r27371:b9ad4c1bff08
Branch filter:

Location: cpp/openttd-patchpack/source/.github/workflows/release.yml

Patric Stout
Feature: opt-in survey when exiting a game

On first start-up, the game will ask if you want to participate
in our automated survey. You have to opt-in, and can easily opt-out
(via the Options) at any time.

When opt-in, whenever you exit a game, a JSON blob will be send
to the survey server hosted by OpenTTD. This JSON blob contains
information that gives a global picture of the game just played:
- What settings were used
- How many humans vs AIs
- How long the game has been played
- Basic information about the OS / CPU

All this information is kept very generic, so there is no
chance we send private information to our survey server.
Nothing in the JSON blob could identify you as a person; it
mostly tells about the game played. At any time you can see
what the JSON blob includes, by pressing the "Preview Survey
Results" button in-game.
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-aws:
    name: Upload (AWS)
    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-aws.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 }}