.github/workflows/check-pr.yaml
name: "Check PR"
on:
pull_request:
branches:
- "main"
paths:
- "src/**"
workflow_dispatch:
concurrency:
group: "${{github.workflow}}-${{github.head_ref}}"
cancel-in-progress: true
jobs:
sonarcloud:
name: "Sonar Cloud"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: SonarScanner for .NET 7 with pull request decoration support
uses: highbyte/sonarscan-dotnet@v2.3.0
with:
sonarProjectKey: onebeyond-studio-core
sonarProjectName: onebeyond-studio-core
sonarOrganization: dcslsoftwareltd
dotnetTestArguments: --logger trx --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover
sonarBeginArguments: /d:sonar.cs.opencover.reportsPaths="**/TestResults/**/coverage.opencover.xml" -d:sonar.cs.vstest.reportsPaths="**/TestResults/*.trx"
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tests:
name: "Run Tests"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: "Setup .NET CLI"
uses: actions/setup-dotnet@v3
with:
dotnet-version: "8.x"
- name: "Restore Solution NuGets"
run: dotnet restore
- name: "Build Solution"
run: dotnet build
--no-restore
--configuration "Release"
- name: "Run Solution Tests"
run: dotnet test
--no-restore --no-build
--configuration "Release"
--settings "src/CodeCoverage.runsettings"
--collect "XPlat Code Coverage"
--logger "trx;logfileprefix=tr"
- name: "Publish Solution Test Results"
uses: actions/upload-artifact@v3
if: success() || failure()
with:
name: "test-results"
path: "src/**/TestResults/*.trx"