From 0ecce6e4fbcfefe1b4e09f89e593e7969b08fba2 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Thu, 6 Mar 2025 18:18:54 -0600 Subject: [PATCH] Add build/publish to NuGet workflow --- .github/workflows/IPXRelayDotNet.Release.yml | 49 ++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/IPXRelayDotNet.Release.yml diff --git a/.github/workflows/IPXRelayDotNet.Release.yml b/.github/workflows/IPXRelayDotNet.Release.yml new file mode 100644 index 0000000..47ea3cb --- /dev/null +++ b/.github/workflows/IPXRelayDotNet.Release.yml @@ -0,0 +1,49 @@ +name: IPXRelayDotNet Release + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +permissions: + contents: write + +jobs: + prep: + runs-on: ubuntu-latest + outputs: + version_tag: ${{ steps.trim_tag_ref.outputs.replaced }} + version_semver: ${{ steps.trim_tag_ref.outputs.replaced }} + steps: + - uses: frabert/replace-string-action@v2 + name: Trim Tag Ref + id: trim_tag_ref + with: + string: '${{ github.ref }}' + pattern: 'refs/tags/v' + replace-with: '' + + publish: + needs: prep + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '7.0.x' + + - name: Restore dependencies + run: dotnet restore IPXRelay/IPXRelayDotNet.csproj + + - name: Build project + run: dotnet build --configuration Release IPXRelay/IPXRelayDotNet.csproj -p:Version="${{ needs.prep.outputs.version_tag }}" -p:AssemblyVersion="${{ needs.prep.outputs.version_semver }}" + + - name: Pack NuGet package with symbols + run: dotnet pack IPXRelay/IPXRelayDotNet.csproj --no-build --configuration Release -p:PackageVersion=${{ needs.prep.outputs.version_tag }} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -o ./artifacts + + - name: Publish NuGet package + run: | + dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json \ No newline at end of file