Skip to content

Publish NuGet Package #15

Publish NuGet Package

Publish NuGet Package #15

Workflow file for this run

name: Publish NuGet Package
permissions:
contents: write
packages: write
on:
release:
types: [published]
workflow_dispatch:
inputs:
release_type:
description: 'Type of release event to simulate (e.g., published)'
required: true
default: 'published'
version:
description: 'Version to use for the package'
required: true
default: '0.0.9'
jobs:
publish:
runs-on: windows-latest
env:
RELEASE_TYPE: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.release_type || github.event.release.prerelease && 'prereleased' || 'published' }}
VERSION: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version || github.event.release.tag_name }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: dotnet restore
- name: Determine configuration
run: |
if ($env:RELEASE_TYPE -eq "prereleased") {
Write-Output "Configuration=Debug" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Write-Output "PackageVersion=${env:VERSION}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
} else {
Write-Output "Configuration=Release" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Write-Output "PackageVersion=${env:VERSION}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
}
- name: Build project
run: dotnet build --no-restore -c ${{ env.Configuration }} /p:GITHUB_RUN_NUMBER=${{ github.run_number }}
- name: Pack the NuGet package
run: dotnet pack --no-build -c ${{ env.Configuration }} -o nupkgs
- name: Publish to NuGet.org
run: |
dotnet nuget push "nupkgs\*.nupkg" `
--api-key "${{ secrets.NUGET_API_KEY }}" `
--source "https://api.nuget.org/v3/index.json"
- name: Push to GitHub Packages
run: |
dotnet nuget push "nupkgs\*.nupkg" `
--api-key "${{ secrets.GITHUB_TOKEN }}" `
--source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}