name: publish Terminal.Gui to nuget
on:
  push:
    branches:
      - master # Default release branch
jobs:
  publish:
    name: build, pack & publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Setup dotnet
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: 5.0.100-rc.1.20452.10

      # Publish
      - name: publish on version change
        id: publish_nuget
        uses: brandedoutcast/publish-nuget@v2
        with:
          # Filepath of the project to be packaged, relative to root of repository
          PROJECT_FILE_PATH: Terminal.Gui/Terminal.Gui.csproj
          
          # NuGet package id, used for version detection & defaults to project name
          PACKAGE_NAME: Terminal.Gui
          
          # Filepath with version info, relative to root of repository & defaults to PROJECT_FILE_PATH
          VERSION_FILE_PATH: Terminal.Gui/Directory.Build.props

          # Regex pattern to extract version info in a capturing group
          VERSION_REGEX: ^\s*<Version>(.*)<\/Version>\s*$
          
          # Useful with external providers like Nerdbank.GitVersioning, ignores VERSION_FILE_PATH & VERSION_REGEX
          # VERSION_STATIC: 1.0.0

          # Flag to toggle git tagging, enabled by default
          TAG_COMMIT: true

          # Format of the git tag, [*] gets replaced with actual version
          # TAG_FORMAT: v*

          # API key to authenticate with NuGet server
          NUGET_KEY: ${{secrets.NUGET_API_KEY}}

          # NuGet server uri hosting the packages, defaults to https://api.nuget.org
          # NUGET_SOURCE: https://api.nuget.org

          # Flag to toggle pushing symbols along with nuget package to the server, disabled by default
          INCLUDE_SYMBOLS: false
