Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 0 additions & 55 deletions .github/workflows/build-macos.yml

This file was deleted.

55 changes: 0 additions & 55 deletions .github/workflows/build-ubuntu.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/build-windows.yml

This file was deleted.

95 changes: 95 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: "CI/CD Pipeline"

on:
push:
paths-ignore:
- "**.md"
- LICENSE
branches:
- "master"
pull_request:
paths-ignore:
- "**.md"
- LICENSE
branches:
- master
- "feature/*"

env:
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_NOLOGO: true

jobs:
build-and-test:
name: "Build & Test (${{ matrix.name }})"
runs-on: ${{ matrix.os }}
env:
NUGET_PACKAGES: ${{ contains(matrix.os, 'windows') && format('{0}\.nuget\packages', github.workspace) || format('{0}/.nuget/packages', github.workspace) }}

strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
name: "Windows"
script: "./build.ps1"

- os: ubuntu-22.04
name: "Linux"
script: "./build.sh"

- os: macos-latest
name: "macOS"
script: "./build.sh"

steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for better caching

- name: "Setup .NET SDK"
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
9.0.x

- name: "Make build script executable"
if: runner.os != 'Windows'
run: chmod +x ./build.sh

- name: "Cache NuGet packages"
uses: actions/cache@v4
with:
path: ${{ runner.os == 'Windows' && format('{0}\.nuget\packages', github.workspace) || format('{0}/.nuget/packages', github.workspace) }}
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json', '**/*.csproj', '**/Directory.Packages.props') }}
restore-keys: |
${{ runner.os }}-nuget-

- name: "Build"
run: ${{ matrix.script }} --target build

- name: "Run Tests"
run: ${{ matrix.script }} --target tests --skipFunctionalTest ${{ runner.os == 'Linux' && 'false' || 'true' }} --exclusive

- name: "Publish Test Results"
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: 'Test Results (${{ matrix.name }})'
path: '**/TestResults/*.trx'
reporter: 'dotnet-trx'
fail-on-error: true
max-annotations: 50

- name: "Upload Test Artifacts"
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-results-${{ matrix.name }}
path: |
**/*.trx
**/TestResults/**/*
retention-days: 7
27 changes: 27 additions & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Dependency Review

on:
pull_request:
branches:
- master
- "feature/*"

permissions:
contents: read
pull-requests: write

jobs:
dependency-review:
name: "Dependency Review"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Dependency Review"
uses: actions/dependency-review-action@v4
with:
# Fail the check if a vulnerability with 'moderate' severity or higher is found.
fail-on-severity: moderate
# Always post a summary of the check as a comment on the PR.
comment-summary-in-pr: always
Loading
Loading