chore: Bump Spectre.Console, SQLitePCLRaw.bundle_e_sqlite3 and Tomlyn #2428
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: | |
| pull_request: | |
| # Skip markdown-only PRs, EXCEPT under kcap/ — every file in the shipped plugin is a SKILL.md, so | |
| # adding a skill is a markdown-only change. Ignoring those let two skills ship unlisted in | |
| # AgentsSkillsInstaller.SourceNames without a red build; the guard that now catches it only helps | |
| # if it runs on the PR that causes it. Order matters: later patterns re-include. | |
| paths: | |
| - '**' | |
| - '!**.md' | |
| - 'kcap/**' | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - '**.md' | |
| tags: | |
| - 'v*' | |
| jobs: | |
| build-and-test: | |
| name: Build and test (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # linux-x64 + windows-x64. macOS is NOT in this matrix: the unit suite has | |
| # a known cluster of macOS-local temp-path/parallel-load flakes that would | |
| # make a macOS leg permanently red. macOS arm64 is covered by maintainer | |
| # runs; macOS x64 is intentionally untested. Platform-sensitive daemon | |
| # behavior that must hold everywhere (e.g. the borrowed-review capability | |
| # advertisement, which no longer carries any OS/arch precondition) is | |
| # additionally pinned by host-independent source guards in the unit suite — | |
| # see DaemonRunnerCursorAvailabilityTests' platform coverage matrix. | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| cache: true | |
| # No lock file to key on; CPM makes this the one file that pins every version. | |
| cache-dependency-path: Directory.Packages.props | |
| # Whole solution in every cached job: one OS-keyed immutable entry, so a job that | |
| # restored a subset would win the race and freeze the cache on it. | |
| - name: Restore solution | |
| run: dotnet restore Capacitor.slnx | |
| - name: Build solution | |
| run: dotnet build Capacitor.slnx --no-restore | |
| - name: Run npm wrapper tests | |
| # Plain-Node assertion scripts for the npm launcher/refresh/resolve | |
| # modules (no test framework, no npm install). `shell: bash` gives | |
| # fail-fast -e semantics on both matrix legs. | |
| shell: bash | |
| run: | | |
| node npm/kcap/bin/kcap.test.js | |
| node npm/kcap/bin/resolve.test.js | |
| node npm/kcap/bin/refresh.test.js | |
| - name: Run tests | |
| # --max-parallel-test-modules 1 runs one assembly at a time. TEMPORARY: the suites | |
| # share process-global state through the filesystem (KCAP_CONFIG_DIR, temp roots), | |
| # which no in-assembly [NotInParallel] key can serialise across assemblies. Re-enable | |
| # module parallelism once those sharing points are gone. | |
| # --maximum-parallel-tests 1 caps only TUnit's unkeyed bucket — keyed | |
| # [NotInParallel] tests still run concurrently with disjoint-key classes, so | |
| # anything touching process-global state must hold the SAME key as every other | |
| # toucher. Local dev runs stay parallel; both flags live only in CI. | |
| run: dotnet test --solution Capacitor.slnx --no-build --max-parallel-test-modules 1 -- --maximum-parallel-tests 1 | |
| lint-linear-ids: | |
| name: No Linear issue IDs in C# source | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Check for Linear issue ID tokens in src/**/*.cs and test/**/*.cs | |
| run: bash scripts/check-linear-ids.sh | |
| aot-check: | |
| name: AOT publish check | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| project: | |
| - src/Capacitor.Cli/Capacitor.Cli.csproj | |
| - src/Capacitor.Cli.Daemon/Capacitor.Cli.Daemon.csproj | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| cache: true | |
| # No lock file to key on; CPM makes this the one file that pins every version. | |
| cache-dependency-path: Directory.Packages.props | |
| - name: Install build dependencies | |
| run: sudo apt-get update && sudo apt-get install -y clang zlib1g-dev | |
| # Whole solution, and the RID pulls ILCompiler — a superset of build-and-test's set. | |
| - name: Restore solution | |
| run: dotnet restore Capacitor.slnx -r linux-x64 | |
| - name: Publish AOT (linux-x64) | |
| run: dotnet publish ${{ matrix.project }} -c Release -r linux-x64 --no-restore | |
| - name: Check for trimming warnings | |
| run: | | |
| OUTPUT=$(dotnet publish ${{ matrix.project }} -c Release -r linux-x64 --no-restore 2>&1) | |
| if echo "$OUTPUT" | grep -E 'IL[23][01][0-9]{2}'; then | |
| echo "::error::AOT/trimming warnings detected" | |
| echo "$OUTPUT" | grep -E 'IL[23][01][0-9]{2}' | |
| exit 1 | |
| fi |