diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8151715..9c89073 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,30 @@ on: branches: [ main ] jobs: + lint-and-typecheck: + name: Lint & Typecheck + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v7 + + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: 20 + cache: 'npm' + + - name: Install Dependencies + run: npm ci + + - name: Run ESLint + run: npm run lint + + - name: Run TypeScript Typecheck + run: npx tsc --noEmit + build-and-test: + name: build-and-test (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -18,13 +41,15 @@ jobs: - name: Checkout Code uses: actions/checkout@v7 - - name: Checkout Avalonia.LayoutInspector - run: git clone https://github.com/spelech/Avalonia.LayoutInspector.git ../Avalonia.LayoutInspector + - name: Checkout Avalonia.LayoutInspector (Shallow) + run: git clone --depth 1 https://github.com/spelech/Avalonia.LayoutInspector.git ../Avalonia.LayoutInspector - name: Setup .NET SDK 10.0 uses: actions/setup-dotnet@v6 with: dotnet-version: '10.0.x' + cache: true + cache-dependency-path: 'LocalLLMServerManager.slnx' - name: Restore Dependencies run: dotnet restore LocalLLMServerManager.slnx @@ -32,5 +57,10 @@ jobs: - name: Build Solution run: dotnet build LocalLLMServerManager.slnx -c Release --no-restore - - name: Run Unit Tests & Collect Code Coverage + - name: Run Unit Tests & Collect Code Coverage (Ubuntu) + if: matrix.os == 'ubuntu-latest' run: dotnet test LocalLLMServerManager.Tests/LocalLLMServerManager.Tests.csproj -c Release --no-build --collect:"XPlat Code Coverage" --nologo + + - name: Run Unit Tests (Windows) + if: matrix.os == 'windows-latest' + run: dotnet test LocalLLMServerManager.Tests/LocalLLMServerManager.Tests.csproj -c Release --no-build --nologo diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0724b60..dc61786 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,13 +17,15 @@ jobs: - name: Checkout Code uses: actions/checkout@v7 - - name: Checkout Avalonia.LayoutInspector - run: git clone https://github.com/spelech/Avalonia.LayoutInspector.git ../Avalonia.LayoutInspector + - name: Checkout Avalonia.LayoutInspector (Shallow) + run: git clone --depth 1 https://github.com/spelech/Avalonia.LayoutInspector.git ../Avalonia.LayoutInspector - name: Setup .NET 10 SDK uses: actions/setup-dotnet@v6 with: dotnet-version: '10.0.x' + cache: true + cache-dependency-path: 'LocalLLMServerManager.slnx' - name: Install WASM Workload run: dotnet workload install wasm-tools diff --git a/wwwroot/_framework/LocalLLMServerManager.Shared.wasm b/wwwroot/_framework/LocalLLMServerManager.Shared.wasm index ce0da32..7df39a9 100644 Binary files a/wwwroot/_framework/LocalLLMServerManager.Shared.wasm and b/wwwroot/_framework/LocalLLMServerManager.Shared.wasm differ diff --git a/wwwroot/_framework/LocalLLMServerManager.Web.wasm b/wwwroot/_framework/LocalLLMServerManager.Web.wasm index 12f7bb5..f554f83 100644 Binary files a/wwwroot/_framework/LocalLLMServerManager.Web.wasm and b/wwwroot/_framework/LocalLLMServerManager.Web.wasm differ diff --git a/wwwroot/_framework/dotnet.boot.js b/wwwroot/_framework/dotnet.boot.js index 282ce0f..22599fe 100644 --- a/wwwroot/_framework/dotnet.boot.js +++ b/wwwroot/_framework/dotnet.boot.js @@ -1,7 +1,7 @@ export const config = /*json-start*/{ "mainAssemblyName": "LocalLLMServerManager.Web.dll", "resources": { - "hash": "sha256-cUu5sp/tPue4O1eVA+84XhQmjWaZcYQ7uC2rH4hI31c=", + "hash": "sha256-CC06yhuePd/dhKLauKBxG21H9tsiKOceO36ur8h3PRM=", "jsModuleNative": [ { "name": "dotnet.native.js" @@ -131,12 +131,12 @@ export const config = /*json-start*/{ { "virtualPath": "LocalLLMServerManager.Shared.wasm", "name": "LocalLLMServerManager.Shared.wasm", - "hash": "sha256-qHVIpaXUV9uN+7lxwRWho2JNCZ4teEXaEofLBZcuGxM=" + "hash": "sha256-pGnitCyXIS1yBOTmudGbFWc4+O4Q3LzrI4AnD0ANTls=" }, { "virtualPath": "LocalLLMServerManager.Web.wasm", "name": "LocalLLMServerManager.Web.wasm", - "hash": "sha256-GnEK4p4sfPa841jBQHkkInO/of5HihM3cAfPzGqGImE=" + "hash": "sha256-C9CN+ERjyv3tUpoqGwE/HTZRWTmnq1IQvN/ee1hrs4c=" }, { "virtualPath": "Semi.Avalonia.wasm",