build(deps): bump @iconify-icons/vscode-icons in /apps/inspector #370
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| workflow_call: | |
| push: | |
| pull_request: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| build-and-test: | |
| name: Build and test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out source | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| ref: ${{ github.sha }} | |
| fetch-depth: 0 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 | |
| with: | |
| global-json-file: global.json | |
| cache: true | |
| cache-dependency-path: "**/*.csproj" | |
| - name: Verify .sln project-list parity | |
| run: node tools/quality/solution-parity.mjs | |
| - name: Restore .NET tools | |
| run: dotnet tool restore | |
| - name: Set up Node.js for repository tooling | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: 26.5.0 | |
| - name: Verify managed API baseline | |
| env: | |
| # PublicApiGenerator.Tool targets net6.0; the runner only has 8.x/9.x/10.x shared runtimes installed. | |
| DOTNET_ROLL_FORWARD: LatestMajor | |
| run: node tools/quality/managed-api-baseline.mjs compare | |
| - name: Check changed C# documentation | |
| env: | |
| DIFF_BASE: ${{ github.event.pull_request.base.sha || github.event.before }} | |
| run: | | |
| if [ -z "$DIFF_BASE" ] || [ "$DIFF_BASE" = "0000000000000000000000000000000000000000" ]; then DIFF_BASE=$(git rev-parse HEAD^); fi | |
| node tools/quality/changed-documentation.mjs --base "$DIFF_BASE" --language csharp | |
| - name: Restore dependencies | |
| run: dotnet restore ./CStructSharp.NonWeb.sln | |
| - name: Build | |
| run: dotnet build ./CStructSharp.NonWeb.sln -c Release --no-restore | |
| - name: Verify formatting and analyzer style | |
| run: dotnet format ./CStructSharp.NonWeb.sln --verify-no-changes --severity warn --no-restore | |
| - name: Run synthetic memory consumer on both frameworks | |
| run: | | |
| dotnet run --project docs/examples/memory-analysis -c Release -f net8.0 --no-build | |
| dotnet run --project docs/examples/memory-analysis -c Release -f net10.0 --no-build | |
| - name: Test .NET 8 | |
| run: >- | |
| dotnet test ./tests/CStructSharpTests/CStructSharpTests.csproj | |
| -c Release | |
| -f net8.0 | |
| --no-build | |
| --logger trx | |
| --results-directory ./artifacts/test-results | |
| - name: Test .NET 10 suites and enforce whole-library coverage | |
| run: | | |
| node tools/quality/collect-library-coverage.mjs | |
| node tools/quality/coverage-risk.mjs --coverage-path artifacts/test-results/library-coverage/coverage.cobertura.xml --collection-manifest artifacts/test-results/library-coverage/collection.json --population-policy contracts/quality/coverage-population.json --output-directory artifacts/test-results/library-risk --minimum-line-percent 78 --minimum-branch-percent 80 --maximum-high-risk-files 0 --maximum-critical-risk-files 0 | |
| - name: Check generated fixtures and .NET 8 parity | |
| run: | | |
| node tools/quality/generate-parity-layouts.mjs --check | |
| dotnet test ./tests/CStructSharp.Generated.Parity/CStructSharp.Generated.Parity.csproj -c Release -f net8.0 --no-build --logger trx --results-directory ./artifacts/test-results/parity | |
| - name: Generate README quality badges | |
| run: >- | |
| node tools/quality/readme-badges.mjs | |
| --results-directory artifacts/test-results/library-coverage/badge-input | |
| --output-directory artifacts/readme-badges | |
| --run-url "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
| - name: Test memory coverage | |
| run: | | |
| dotnet test tests/CStructSharpTests/CStructSharpTests.csproj -c Release -f net10.0 --no-build --filter FullyQualifiedName~Memory --collect:"XPlat Code Coverage" --results-directory artifacts/test-results/memory -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Include="[CStructSharp]CStructSharp.Memory.*" | |
| coverage=$(find artifacts/test-results/memory -name coverage.cobertura.xml | head -n 1) | |
| node tools/quality/coverage-risk.mjs --coverage-path "$coverage" --output-directory artifacts/test-results/memory-risk --minimum-line-percent 78 --minimum-branch-percent 80 --maximum-high-risk-files 0 --maximum-critical-risk-files 0 | |
| - name: Upload README quality badges | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: readme-badges | |
| path: artifacts/readme-badges | |
| - name: Verify quality contracts | |
| run: | | |
| node --test tools/quality/*.test.mjs | |
| node tools/quality/browser-contract.mjs | |
| node tools/quality/fuzz-corpus.mjs | |
| node tools/quality/compiler-fixture.mjs validate | |
| node tools/quality/compiler-fixture.mjs table --check | |
| node tools/quality/non-web-release-budgets.mjs --self-test | |
| node tools/quality/render-performance-table.mjs --self-test | |
| - name: Pack and verify actual NuGet consumers | |
| run: | | |
| dotnet pack src/CStructSharp/CStructSharp.csproj -c Release -o artifacts/package | |
| node tools/packaging/validate-package.mjs --package-path artifacts/package/*.nupkg --symbol-package-path artifacts/package/*.snupkg | |
| node tools/packaging/test-package-consumer.mjs --package-directory artifacts/package | |
| node tools/packaging/test-onboarding-package.mjs --package-directory artifacts/package | |
| node tools/packaging/test-memory-package-consumer.mjs --package-directory artifacts/package | |
| - name: Publish and run the Native AOT consumer | |
| run: | | |
| dotnet publish tests/CStructSharp.AotConsumer/CStructSharp.AotConsumer.csproj -c Release -r linux-x64 -p:CppCompilerAndLinker=clang | |
| ./tests/CStructSharp.AotConsumer/bin/Release/net10.0/linux-x64/publish/CStructSharp.AotConsumer | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: test-results | |
| path: | | |
| artifacts/test-results/**/*.trx | |
| artifacts/test-results/**/coverage.cobertura.xml | |
| artifacts/test-results/library-coverage/** | |
| artifacts/test-results/library-risk/** | |
| if-no-files-found: warn | |
| # Windows and macOS run the managed suite only (no coverage, packaging, or AOT); the Linux job above stays the | |
| # full gate. Path separators, CR/LF layout text, culture, and Stream behaviors differ per platform. | |
| cross-platform-tests: | |
| name: Managed tests on ${{ matrix.os }} | |
| needs: build-and-test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Check out source | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 | |
| with: | |
| global-json-file: global.json | |
| - name: Restore dependencies | |
| run: dotnet restore ./CStructSharp.NonWeb.sln | |
| - name: Build | |
| run: dotnet build ./CStructSharp.NonWeb.sln -c Release --no-restore | |
| - name: Test .NET 8 and .NET 10 | |
| run: dotnet test ./tests/CStructSharpTests/CStructSharpTests.csproj -c Release --no-build --logger trx --results-directory ./artifacts/test-results/${{ matrix.os }} | |
| # Generated code is platform-neutral; this leg checks the netstandard2.0 generator's load path on each host's compiler. | |
| - name: Test generated parity | |
| run: dotnet test ./tests/CStructSharp.Generated.Parity/CStructSharp.Generated.Parity.csproj -c Release --no-build --logger trx --results-directory ./artifacts/test-results/${{ matrix.os }} | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: test-results-${{ matrix.os }} | |
| path: artifacts/test-results/**/*.trx | |
| if-no-files-found: warn |