1313 environment : production
1414
1515 steps :
16+ - name : Verify release tag
17+ shell : bash
18+ run : |
19+ if [[ ! "$GITHUB_REF" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
20+ echo "::error::NuGet publishing requires a stable release tag (vX.Y.Z)."
21+ exit 1
22+ fi
23+
1624 - name : Checkout
1725 uses : actions/checkout@v4
1826
2432 9.0.x
2533 10.0.x
2634
35+ - name : Verify package version
36+ shell : bash
37+ run : |
38+ TAG_VERSION="${GITHUB_REF_NAME#v}"
39+
40+ PROJECT_VERSION=$(dotnet msbuild \
41+ -getProperty:Version \
42+ src/CodeBeam.UltimateAuth.Server/CodeBeam.UltimateAuth.Server.csproj)
43+
44+ if [[ "$TAG_VERSION" != "$PROJECT_VERSION" ]]; then
45+ echo "::error::Tag version ($TAG_VERSION) does not match package version ($PROJECT_VERSION)."
46+ exit 1
47+ fi
48+
2749 - name : Restore
2850 run : dotnet restore
2951
3860 /p:IncludeSymbols=true \
3961 /p:SymbolPackageFormat=snupkg
4062
63+ - name : Verify packages
64+ shell : bash
65+ run : |
66+ shopt -s nullglob
67+ packages=(./nupkgs/*.nupkg)
68+
69+ if (( ${#packages[@]} == 0 )); then
70+ echo "::error::No NuGet packages were generated."
71+ exit 1
72+ fi
73+
74+ VERSION="${GITHUB_REF_NAME#v}"
75+
76+ for f in "${packages[@]}"; do
77+ if [[ "$f" != *".$VERSION.nupkg" ]]; then
78+ echo "::error::Unexpected package version: $f"
79+ exit 1
80+ fi
81+ done
82+
83+ echo "Validated ${#packages[@]} packages for version $VERSION"
84+
4185 - name : NuGet login (Trusted Publishing)
4286 uses : NuGet/login@v1
4387 id : login
@@ -48,18 +92,18 @@ jobs:
4892 run : ls -la ./nupkgs
4993
5094 - name : Publish packages
95+ shell : bash
5196 run : |
52- echo "🚀 Publishing..."
97+ set -euo pipefail
5398
5499 for f in ./nupkgs/*.nupkg; do
55- echo "📦 $f"
100+ echo "Publishing: $f"
56101
57102 dotnet nuget push "$f" \
58103 --api-key ${{ steps.login.outputs.NUGET_API_KEY }} \
59104 --source https://api.nuget.org/v3/index.json \
60- --skip-duplicate \
61- || echo "❌ Failed: $f"
105+ --skip-duplicate
62106 done
63107
64108 - name : Done
65- run : echo "✅ Publish process completed"
109+ run : echo "✅ NuGet publishing completed succesfully. "
0 commit comments