Skip to content

⬆️ Bump actions/setup-java from 3 to 4 #332

⬆️ Bump actions/setup-java from 3 to 4

⬆️ Bump actions/setup-java from 3 to 4 #332

Workflow file for this run

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@v4
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 }}"