Skip to the content.

Solution: C# Extension Methods - Publish NuGet Package

name: CSharp Extension Methods - Publish NuGet Package

on:
  workflow_dispatch:
  push:
    paths:
      - 'src/dotnet/CSharp.ExtensionMethods/**'
jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    env:
      GITHUB_TOKEN: $
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Setup .NET Core
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: 8.0.x

      - name: Build CSharp.ExtensionMethods
        run: dotnet build --configuration Release
        working-directory: ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods

      - name: Build CSharp.ExtensionMethods.Tests
        run: dotnet build --configuration Release
        working-directory: ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods.Tests

      - name: Run Unit Tests
        run: dotnet test --no-restore --verbosity normal
        working-directory: ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods.Tests

      - name: Create NuGet Package
        run: dotnet pack --configuration Release
        working-directory: ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods

      - name: Publish NuGet Package to GitHub Packages
        run: dotnet nuget push ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods/bin/Release/*.nupkg --source "https://nuget.pkg.github.com/$/index.json" --api-key $ --skip-duplicate

      - name: Publish NuGet Package to NuGet.org
        run: dotnet nuget push ./src/dotnet/CSharp.ExtensionMethods/CSharp.ExtensionMethods/bin/Release/*.nupkg --source "https://api.nuget.org/v3/index.json" --api-key $ --skip-duplicate