1- name : Deploy NuGet Package
1+ name : Publish FileExporter To NuGet
22
33env :
4- PROJECT_PATH : ' ./src/FileExporter/FileExporter.csproj'
5- OUTPUT_DIR : ' nupkgs'
6- NUGET_SOURCE : ' https://api.nuget.org/v3/index.json'
7- NUGET_API_KEY : ${{ secrets.NUGET_API_KEY }}
4+ NUGET_SOURCE : https://api.nuget.org/v3/index.json
5+ OUTPUT_DIR : nupkgs
86
97on :
108 push :
11- branches :
12- - main
9+ branches : [ main ]
10+
11+ permissions :
12+ contents : read
13+
1314jobs :
14- deploy :
15+ publish :
1516 runs-on : ubuntu-latest
17+ environment : Environment Settings
1618
1719 steps :
1820 - name : Checkout
1921 uses : actions/checkout@v6
2022
21- - name : Setup .NET Core
23+ - name : Setup .NET
2224 uses : actions/setup-dotnet@v5
2325 with :
2426 global-json-file : global.json
2527
28+ - name : Restore
29+ run : dotnet restore
30+
2631 - name : Build
27- run : dotnet build ${{ env.PROJECT_PATH }}
32+ run : dotnet build --no-restore --configuration Release
33+
34+ - name : Test
35+ run : dotnet test --no-build --configuration Release --verbosity normal
2836
2937 - name : Pack
30- run : dotnet pack ${{ env.PROJECT_PATH }} --output ${{ env.OUTPUT_DIR }}
38+ run : dotnet pack src/FileExporter/FileExporter.csproj --no-build --configuration Release --output ${{ env.OUTPUT_DIR }}
39+
40+ - name : Publish packages
41+ env :
42+ NUGET_API_KEY : ${{ secrets.NUGET_API_KEY }}
43+ shell : bash
44+ run : |
45+ set -euo pipefail
46+
47+ if [ -z "${NUGET_API_KEY:-}" ]; then
48+ echo "NUGET_API_KEY is missing. If you stored it as an Environment secret, set jobs.publish.environment to that Environment name."
49+ exit 1
50+ fi
51+
52+ shopt -s nullglob
53+
54+ nupkgs=( "${{ env.OUTPUT_DIR }}"/*.nupkg )
55+ snupkgs=( "${{ env.OUTPUT_DIR }}"/*.snupkg )
56+
57+ if [ ${#nupkgs[@]} -eq 0 ]; then
58+ echo "No .nupkg files found in ${{ env.OUTPUT_DIR }}"
59+ ls -la "${{ env.OUTPUT_DIR }}" || true
60+ exit 1
61+ fi
62+
63+ dotnet nuget push "${nupkgs[@]}" --api-key "$NUGET_API_KEY" --source "${{ env.NUGET_SOURCE }}" --skip-duplicate
3164
32- - name : Publish
33- run : dotnet nuget push ${{ env.OUTPUT_DIR }}/*.nupkg -k ${{ env.NUGET_API_KEY }} -s ${{ env.NUGET_SOURCE }}
65+ if [ ${#snupkgs[@]} -gt 0 ]; then
66+ dotnet nuget push "${snupkgs[@]}" --api-key "$NUGET_API_KEY" --source "${{ env.NUGET_SOURCE }}" --skip-duplicate
67+ fi
0 commit comments