Skip to content

feat: added matrix builds #4

feat: added matrix builds

feat: added matrix builds #4

Workflow file for this run

name: CI Build and Test
on:
push:
branches:
- '**' # Run on every branch
permissions: # Required for dorny/test-reporter@v1
contents: read
actions: read
checks: write
jobs:
ci:
name: CI Build and Test
runs-on: ${{ matrix.os }}
timeout-minutes: 15
defaults:
run:
working-directory: src
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
exclude:
- os: ubuntu-latest
project: Arius.UI # Exclude Windows-specific project on Ubuntu

Check failure on line 27 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / CI Build and Test

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 27, Col: 13): Matrix exclude key 'project' does not match any key within the matrix
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: Restore NuGet Packages
run: |
if [ "${{ matrix.os }}" == "ubuntu-latest" ]; then
dotnet restore --ignore-failed-sources || true
else
dotnet restore
fi
- name: Build Solution
run: |
if [ "${{ matrix.os }}" == "ubuntu-latest" ]; then
dotnet build --configuration Release --no-restore --ignore-failed-sources || true
else
dotnet build --configuration Release --no-restore
fi
- name: Run Unit Tests
run: |
if [ "${{ matrix.os }}" == "ubuntu-latest" ]; then
dotnet test Arius.Core.Tests --configuration Release --no-build --verbosity normal --logger "junit;LogFilePath=../results/test-results.xml" --collect:"XPlat Code Coverage"
else
dotnet test Arius.Core.Tests --configuration Release --no-build --verbosity normal --logger "junit;LogFilePath=../results/test-results.xml" --collect:"XPlat Code Coverage"
dotnet test Arius.UI.Tests --configuration Release --no-build --verbosity normal --logger "junit;LogFilePath=../results/test-results-ui.xml" --collect:"XPlat Code Coverage"
fi
- name: Test Report
uses: dorny/test-reporter@v1
if: always()
with:
name: Test Report
path: "**/test-results*.xml"
reporter: java-junit
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: "**/coverage.cobertura.xml"
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true