⬆️ Bump Microsoft.SourceLink.GitHub from 1.1.1 to 8.0.0 #329
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
build-and-test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
config: | |
- Debug | |
- Release | |
name: Test ${{ matrix.os }} ${{ matrix.config }} | |
env: | |
framework: net7.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 7.0.x | |
- name: Test Coverage | |
run: ./coverage.sh ${{ env.framework }} ${{ matrix.config }} | |
code-coverage: | |
runs-on: ubuntu-latest | |
name: Code coverage | |
env: | |
framework: net7.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 7.0.x | |
- name: Test Coverage | |
run: ./coverage.sh ${{ env.framework }} Release | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./test/TestResults/output/coverage.${{ env.framework }}.cobertura.xml | |
fail_ci_if_error: true | |
- name: Upload coverage to Coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./test/TestResults/output/coverage.${{ env.framework }}.info | |
- name: Shellcheck | |
run: >- | |
find . -type f -name '*.sh' | | |
wc -l && find . -type f -name '*.sh' | | |
xargs shellcheck --external-sources --color=always | |
###################################################################################################################### | |
## docker-tests executes the developer helper docker targets to ensure they continue to work and are not out of date. | |
docker-tests: | |
runs-on: ubuntu-latest | |
name: Docker Tests | |
timeout-minutes: 5 | |
permissions: | |
contents: read | |
env: | |
DOCKER_BUILDKIT: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Docker test | |
run: docker build --target test . | |
- name: Docker ShellCheck | |
run: docker build --target shellcheck . | |
sonar-cloud: | |
name: SonarCloud | |
runs-on: windows-latest | |
if: false | |
steps: | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: temurin | |
java-version: 11 | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- name: Cache SonarCloud packages | |
uses: actions/cache@v3 | |
with: | |
path: ~\sonar\cache | |
key: ${{ runner.os }}-sonar | |
restore-keys: ${{ runner.os }}-sonar | |
- name: Cache SonarCloud scanner | |
id: cache-sonar-scanner | |
uses: actions/cache@v3 | |
with: | |
path: .\.sonar\scanner | |
key: ${{ runner.os }}-sonar-scanner | |
restore-keys: ${{ runner.os }}-sonar-scanner | |
- name: Install SonarCloud scanner | |
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true' | |
shell: powershell | |
run: | | |
New-Item -Path .\.sonar\scanner -ItemType Directory | |
dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner | |
- name: Build and analyze | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
shell: powershell | |
run: | | |
.\.sonar\scanner\dotnet-sonarscanner begin /k:"JSkimming_Castle.Core.AsyncInterceptor" /o:"jskimming" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.opencover.reportsPaths=test\Castle.Core.AsyncInterceptor.Tests\coverage.net7.0.opencover.xml | |
dotnet test -f net7.0 -c Release test\Castle.Core.AsyncInterceptor.Tests\Castle.Core.AsyncInterceptor.Tests.csproj -p:CollectCoverage=true -p:CoverletOutputFormat=opencover -p:Include=[Castle.Core.AsyncInterceptor]* -p:Exclude=[Castle.Core.AsyncInterceptor]*.NoCoverage.* | |
.\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" |