Skip to content

v1.0.3

v1.0.3 #4

Workflow file for this run

name: Publish to NuGet
on:
release:
types: [published]
# Also allow manual trigger for testing
workflow_dispatch:
inputs:
version:
description: 'Version to publish (without v prefix, e.g., 1.0.0)'
required: true
type: string
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # Required for NuGet trusted publishing (OIDC)
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Extract version from tag
id: version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
VERSION="${{ inputs.version }}"
else
# Remove 'v' prefix from tag if present (e.g., v1.0.0 -> 1.0.0)
TAG="${{ github.event.release.tag_name }}"
VERSION="${TAG#v}"
fi
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing version: $VERSION"
- name: Restore dependencies
run: dotnet restore Phoenix/Phoenix.csproj
- name: Build
run: dotnet build Phoenix/Phoenix.csproj --configuration Release --no-restore /p:Version=${{ steps.version.outputs.VERSION }}
- name: Create NuGet package
run: dotnet pack Phoenix/Phoenix.csproj --configuration Release --no-build --output ./nupkg /p:PackageVersion=${{ steps.version.outputs.VERSION }}
- name: NuGet login (OIDC trusted publishing)
uses: NuGet/login@v1
id: nuget-login
with:
user: ${{ secrets.NUGET_USER }}
- name: Publish to NuGet.org
run: dotnet nuget push ./nupkg/*.nupkg --api-key ${{ steps.nuget-login.outputs.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate