@@ -274,13 +274,13 @@ jobs:
274274 dotnet-version : ' 10.0.x'
275275
276276 - name : Download packages artifact
277- uses : actions/download-artifact@v5
277+ uses : actions/download-artifact@v6
278278 with :
279279 name : nuget-packages-${{ github.run_number }}
280280 path : ./artifacts/packages
281281
282282 - name : Download symbols artifact
283- uses : actions/download-artifact@v5
283+ uses : actions/download-artifact@v6
284284 with :
285285 name : nuget-symbols-${{ github.run_number }}
286286 path : ./artifacts/packages
@@ -358,57 +358,32 @@ jobs:
358358
359359 - name : Create GitHub Release
360360 if : startsWith(github.ref, 'refs/tags/v') && success()
361- uses : softprops/action-gh-release@v2
362- with :
363- files : |
364- ./artifacts/packages/*.nupkg
365- ./artifacts/packages/*.snupkg
366- generate_release_notes : true
367- draft : false
368- prerelease : ${{ contains(github.ref, '-') || contains(needs.pack.outputs.package-version, '-') }}
369- tag_name : ${{ github.ref_name }}
370- name : Release ${{ github.ref_name }}
371- body : |
372- ## MinimalCleanArch ${{ github.ref_name }}
373-
374- ### Packages Published
375- - MinimalCleanArch - Core components (.NET 9.0, .NET 10.0)
376- - MinimalCleanArch.DataAccess - Entity Framework Core implementation
377- - MinimalCleanArch.Extensions - Minimal API extensions
378- - MinimalCleanArch.Validation - FluentValidation integration
379- - MinimalCleanArch.Security - Data Protection encryption
380- - MinimalCleanArch.Storage - Generic blob storage abstractions and Azure Blob Storage integration
381- - MinimalCleanArch.Messaging - Domain events / Wolverine integration
382- - MinimalCleanArch.Audit - Audit logging components
383- - MinimalCleanArch.Templates - dotnet new templates (web/api clean architecture)
384-
385- ### Installation
386- ```bash
387- dotnet add package MinimalCleanArch --version ${{ needs.pack.outputs.package-version }}
388- dotnet add package MinimalCleanArch.DataAccess --version ${{ needs.pack.outputs.package-version }}
389- dotnet add package MinimalCleanArch.Extensions --version ${{ needs.pack.outputs.package-version }}
390- ```
391-
392- ### .NET 9.0 and 10.0 Features
393- This release targets .NET 9.0 and .NET 10.0 and includes:
394- - Updated to Entity Framework Core 9.0.5
395- - FluentValidation 12.0.0 support
396- - Enhanced performance and security
397- - Native AOT compatibility improvements
398-
399- ### Usage
400- ```csharp
401- // Program.cs
402- builder.Services.AddMinimalCleanArch<MyDbContext>(options =>
403- options.UseSqlServer(connectionString));
404-
405- builder.Services.AddValidatorsFromAssemblyContaining<MyValidator>();
406- builder.Services.AddDataProtectionEncryptionForDevelopment();
407- ```
408-
409- See the [README](https://github.com/${{ github.repository }}/blob/${{ github.ref_name }}/README.md) for complete usage instructions.
410361 env :
411- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
362+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
363+ IS_PRERELEASE : ${{ contains(github.ref, '-') || contains(needs.pack.outputs.package-version, '-') }}
364+ PACKAGE_VERSION : ${{ needs.pack.outputs.package-version }}
365+ run : |
366+ set -euo pipefail
367+
368+ release_assets=(./artifacts/packages/*.nupkg ./artifacts/packages/*.snupkg)
369+ if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then
370+ gh release upload "${GITHUB_REF_NAME}" "${release_assets[@]}" --clobber
371+ else
372+ prerelease_flag=()
373+ if [ "${IS_PRERELEASE}" = "true" ]; then
374+ prerelease_flag+=(--prerelease)
375+ fi
376+
377+ release_notes_template="$(cat release-notes.md)"
378+ release_notes="${release_notes_template//\{\{TAG\}\}/${GITHUB_REF_NAME}}"
379+ release_notes="${release_notes//\{\{VERSION\}\}/${PACKAGE_VERSION}}"
380+
381+ gh release create "${GITHUB_REF_NAME}" "${release_assets[@]}" \
382+ --title "Release ${GITHUB_REF_NAME}" \
383+ --notes "${release_notes}" \
384+ --generate-notes \
385+ "${prerelease_flag[@]}"
386+ fi
412387
413388 security-scan :
414389 runs-on : ubuntu-latest
0 commit comments