Skip to content

Added support for Tracing #25

Added support for Tracing

Added support for Tracing #25

name: Build and Release NuGet Package
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
DOTNET_VERSION: '8.0.x'
PROJECT_PATH: './src/Servus.Akka.sln'
PACKAGE_OUTPUT_DIRECTORY: './packages'
jobs:
build:
# For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
runs-on: ubuntu-latest
outputs:
semVer: ${{ steps.gitversion.outputs.semVer }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v1.1.1
with:
versionSpec: '5.x'
- name: Determine Version
uses: gittools/actions/gitversion/execute@v1.1.1
id: gitversion
- name: Display GitVersion outputs
run: |
echo "Version: ${{ steps.gitversion.outputs.semVer }}"
- name: Restore dependencies
run: dotnet restore ${{ env.PROJECT_PATH }}
- name: Install sonar scanner
run: dotnet tool install --global dotnet-sonarscanner
- name: start sonar scanner
run: dotnet sonarscanner begin /o:"bavaria-black" /k:"servus-akka" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.cs.opencover.reportsPaths=**/*.opencover.xml
- name: Build
run: dotnet build --configuration Release --no-restore ${{ env.PROJECT_PATH }} /p:Version=${{ steps.gitversion.outputs.semVer }}
- name: Run tests
run: dotnet test --configuration Release --no-build --collect:"XPlat Code Coverage;Format=opencover" --verbosity normal ${{ env.PROJECT_PATH }}
- name: stop sonar scanner
run: dotnet sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"
- name: Create NuGet package
run: dotnet pack --configuration Release --no-build --output ${{ env.PACKAGE_OUTPUT_DIRECTORY }} ${{ env.PROJECT_PATH }} /p:PackageVersion=${{ steps.gitversion.outputs.semVer }}
- name: Upload package artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: ${{ env.PACKAGE_OUTPUT_DIRECTORY }}/*.nupkg
publish:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download package artifacts
uses: actions/download-artifact@v4
with:
name: nuget-packages
path: ${{ env.PACKAGE_OUTPUT_DIRECTORY }}
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Publish to NuGet
run: |
dotnet nuget push --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate ${{ env.PACKAGE_OUTPUT_DIRECTORY }}/*.nupkg
- name: Create and push Git tag
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git tag -a "v${{ needs.build.outputs.semVer }}" -m "Release v${{ needs.build.outputs.semVer }}"
git push origin "v${{ needs.build.outputs.semVer }}"