BUTR/Bannerlord.YellToInspire

View on GitHub
.github/workflows/publish.yml

Summary

Maintainability
Test Coverage
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/github-workflow.json
name: Publish Module

on:
  push:
    branches:
      - master

env:
  # Disable the .NET logo in the console output.
  DOTNET_NOLOGO: true
  # Disable the .NET first time experience to skip caching NuGet packages and speed up the build.
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
  # Disable sending .NET CLI telemetry to Microsoft.
  DOTNET_CLI_TELEMETRY_OPTOUT: true

jobs:
  build-module:
    name: Build Module
    runs-on: ubuntu-latest
    outputs:
      mod_version: ${{ steps.changelog.outputs.mod_version }}
      mod_description: ${{ steps.changelog.outputs.mod_description }}
    steps:
      - name: Setup
        uses: butr/actions-common-setup@v2
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}

      - name: Build Bannerlord.YellToInspire
        run: >-
          mkdir bannerlord;
          dotnet pack src/Bannerlord.YellToInspire/Bannerlord.YellToInspire.csproj --configuration Release -p:GameFolder="$PWD/bannerlord";
        shell: pwsh

      - name: Run ChangelogParser
        id: changelog
        run: |
          dotnet tool install -g Bannerlord.ChangelogParser
          vers="$(bannerlord_changelog_parser latestversion -f "$PWD/changelog.txt")"
          echo "::set-output name=mod_version::$vers"
          desc="$(bannerlord_changelog_parser fulldescription -f "$PWD/changelog.txt")"
          desc="${desc//'%'/'%25'}"
          desc="${desc//$'\n'/'%0A'}"
          desc="${desc//$'\r'/'%0D'}"
          echo "::set-output name=mod_description::$desc"
      - name: Upload Bannerlord folder
        uses: actions/upload-artifact@v4
        with:
          name: bannerlord
          path: ./bannerlord/

###########################
#        NEXUSMODS        #
###########################
  publish-on-nexusmods:
    needs: ["build-module"]
    uses: BUTR/workflows/.github/workflows/release-nexusmods.yml@master
    with:
      nexusmods_game_id: mountandblade2bannerlord
      nexusmods_mod_id: 3638
      mod_filename: Bannerlord.YellToInspire
      mod_version: ${{ needs.build-module.outputs.mod_version }}
      mod_description: ${{ needs.build-module.outputs.mod_description }}
      artifact_name: bannerlord
    secrets:
      NEXUSMODS_APIKEY: ${{ secrets.ARAGAS_NEXUSMODS_API_KEY }}
      NEXUSMODS_SESSION_COOKIE: ${{ secrets.ARAGAS_NEXUSMODS_SESSION_COOKIE }}

  ###########################
  #          STEAM          #
  ###########################
  publish-on-steam:
    needs: ["build-module"]
    uses: BUTR/workflows/.github/workflows/release-steam.yml@master
    with:
      workshop_id: 2884365680
      mod_id: Bannerlord.YellToInspire
      mod_description: ${{ needs.build-module.outputs.mod_description }}
      artifact_name: bannerlord
    secrets:
      STEAM_LOGIN: ${{ secrets.STEAM_WORKSHOP_LOGIN }}
      STEAM_PASSWORD: ${{ secrets.STEAM_WORKSHOP_PASSWORD }}
      STEAM_AUTH_CODE: ${{ secrets.STEAM_WORKSHOP_AUTH_CODE }}

  ###########################
  #         GITHUB          #
  ###########################
  publish-on-github:
    needs: ["build-module"]
    uses: BUTR/workflows/.github/workflows/release-github.yml@master
    with:
      mod_id: Bannerlord.YellToInspire
      mod_version: ${{ needs.build-module.outputs.mod_version }}
      mod_description: ${{ needs.build-module.outputs.mod_description }}
      artifact_name: bannerlord