@@ -2,6 +2,7 @@ name: Build and Test
22on :
33 push :
44 pull_request :
5+ workflow_dispatch :
56
67jobs :
78 build :
1011 steps :
1112 - name : Checkout code
1213 uses : actions/checkout@v5
14+ with :
15+ fetch-depth : 0 # Required for GitVersion
16+
17+ - name : Install GitVersion
18+ uses :
gittools/actions/gitversion/[email protected] 19+ with :
20+ versionSpec : ' 6.x'
21+
22+ - name : Determine Version
23+ uses :
gittools/actions/gitversion/[email protected] 24+ id : gitversion
25+ with :
26+ useConfigFile : true
27+
28+ - name : Display GitVersion outputs
29+ run : |
30+ echo "Version: ${{ steps.gitversion.outputs.semVer }}"
31+ echo "AssemblyVersion: ${{ steps.gitversion.outputs.assemblySemVer }}"
32+ echo "FileVersion: ${{ steps.gitversion.outputs.assemblySemFileVer }}"
33+ echo "NuGet Version: ${{ steps.gitversion.outputs.nuGetVersionV2 }}"
1334
1435 - name : Setup .NET
1536 uses : actions/setup-dotnet@v5
1839
1940 - name : Build project
2041 working-directory : src
21- run : dotnet build --configuration Release
42+ run : dotnet build --configuration Release /p:Version=${{ steps.gitversion.outputs.assemblySemVer }} /p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} /p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} /p:PackageVersion=${{ steps.gitversion.outputs.nuGetVersionV2 }}
2243
2344 - name : Run tests with coverage
2445 working-directory : src
@@ -31,14 +52,41 @@ jobs:
3152 targetdir : ' coverage-report'
3253 reporttypes : ' Html;Cobertura'
3354
34- - name : Upload coverage to Codecov
35- uses : codecov/codecov-action@v5
55+ - name : Create NuGet package
56+ working-directory : src
57+ run : dotnet pack --configuration Release --no-build /p:PackageVersion=${{ steps.gitversion.outputs.nuGetVersionV2 }} --output ../packages
58+
59+ - name : Upload NuGet package as artifact
60+ uses : actions/upload-artifact@v4
3661 with :
37- files : ./coverage/**/coverage.cobertura.xml
38- fail_ci_if_error : false
62+ name : nuget-package
63+ path : packages/*.nupkg
3964
4065 - name : Publish coverage report as artifact
4166 uses : actions/upload-artifact@v4
4267 with :
4368 name : coverage-report
44- path : coverage-report/
69+ path : coverage-report/
70+
71+ publish-nuget :
72+ runs-on : ubuntu-latest
73+ needs : build
74+ if : github.event_name == 'push' && github.ref_name == github.event.repository.default_branch
75+ environment :
76+ name : Publish
77+ url : https://www.nuget.org/packages/TestStack.BDDfy/
78+
79+ steps :
80+ - name : Download NuGet package
81+ uses : actions/download-artifact@v5
82+ with :
83+ name : nuget-package
84+ path : packages
85+
86+ - name : Setup .NET
87+ uses : actions/setup-dotnet@v5
88+ with :
89+ dotnet-version : ' 8.0.x'
90+
91+ - name : Publish to NuGet
92+ run : dotnet nuget push packages/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
0 commit comments