C# Implementation (#2)

C# implementation of SEP-1763

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Peder Holdgaard Pedersen 2026-01-28 00:53:44 +01:00 • committed by GitHub
commit 45f9e0ef27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13862 additions and 21 deletions

82
.github/workflows/csharp.yml vendored Normal file
View file

@ -0,0 +1,82 @@
name: C# CI
on:
push:
branches: [main]
paths:
- 'csharp/**'
- '.github/workflows/csharp.yml'
pull_request:
paths:
- 'csharp/**'
- '.github/workflows/csharp.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
csharp-build:
name: "Build"
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: |
cd csharp/sdk
dotnet restore
- name: Build
run: |
cd csharp/sdk
dotnet build --no-restore --configuration Release
csharp-test:
name: "Unit Tests"
runs-on: ubuntu-latest
strategy:
matrix:
dotnet-version: ['8.0.x', '9.0.x']
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Restore dependencies
run: |
cd csharp/sdk
dotnet restore
- name: Run tests
run: |
cd csharp/sdk
dotnet test --no-restore --verbosity normal --collect:"XPlat Code Coverage"
csharp-pack:
name: "Package"
runs-on: ubuntu-latest
needs: [csharp-build, csharp-test]
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: |
cd csharp/sdk
dotnet restore
- name: Create NuGet package
run: |
cd csharp/sdk
dotnet pack --no-restore --configuration Release --output ./artifacts
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: csharp/sdk/artifacts/*.nupkg

View file

@ -7,7 +7,7 @@ on:
pull_request:
types: [opened, synchronize, reopened]
workflow_run:
workflows: ["Python CI", "Go CI", "TypeScript CI"]
workflows: ["C# CI", "Python CI", "Go CI", "TypeScript CI"]
types: [completed]
permissions:
@ -42,6 +42,9 @@ jobs:
uses: dorny/paths-filter@v3
with:
filters: |
csharp:
- 'csharp/**'
- '.github/workflows/csharp.yml'
python:
- 'python/**'
- '.github/workflows/python.yml'
@ -62,6 +65,12 @@ jobs:
// Define required checks per language
const requiredChecks = {
csharp: [
'C# CI / Build',
'C# CI / Unit Tests (8.0.x)',
'C# CI / Unit Tests (9.0.x)',
'C# CI / Package'
],
python: [
'Python CI / Linting',
'Python CI / Unit Tests (3.10)',
@ -84,6 +93,7 @@ jobs:
// Get changed files from previous step
const changedFiles = {
csharp: ${{ steps.changed-files.outputs.csharp }} === 'true',
python: ${{ steps.changed-files.outputs.python }} === 'true',
go: ${{ steps.changed-files.outputs.go }} === 'true',
typescript: ${{ steps.changed-files.outputs.typescript }} === 'true'