Fix dangling registered project poisoning project lookup/activation #66
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: Parallel Matrix CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository }}-maximal:latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - batch_name: "Heavy Toolchains (C++, Rust, Java)" | |
| marker_expr: 'cpp or rust or java' | |
| - batch_name: "Medium Toolchains (Go)" | |
| marker_expr: 'go' | |
| - batch_name: "Catch-All (Core Framework & Remaining Languages)" | |
| marker_expr: 'not cpp and not rust and not java and not go and not elm and not r and not rego and not scala' | |
| name: ${{ matrix.batch_name }} | |
| env: | |
| UV_LINK_MODE: copy | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache language servers | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.serena/language_servers | |
| key: ls-cache-${{ runner.os }}-${{ github.sha }} | |
| restore-keys: | | |
| ls-cache-${{ runner.os }}- | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| - name: Create venv + install deps | |
| shell: bash | |
| run: | | |
| set -euxo pipefail | |
| uv venv .venv | |
| .venv/bin/python -m ensurepip --upgrade || true | |
| .venv/bin/python -m pip install -U pip setuptools wheel | |
| uv pip install -e ".[dev]" | |
| .venv/bin/python -m pytest --version | |
| - name: Dotnet diagnostics (non-blocking) | |
| shell: bash | |
| run: | | |
| set -euxo pipefail | |
| dotnet --list-runtimes || true | |
| dotnet --info || true | |
| - name: Compute marker expression (final architecture quarantine) | |
| id: markers | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| MARKERS='${{ matrix.marker_expr }}' | |
| if [[ '${{ matrix.batch_name }}' == 'Catch-All (Core Framework & Remaining Languages)' ]]; then | |
| # Strict Quarantining: Explicitly disabling flaky auto-install dependencies & missing heavy toolchains | |
| MARKERS="$MARKERS and not ruby and not php and not clojure and not kotlin and not msl and not nix and not zig and not swift and not perl and not fortran and not haskell and not elixir and not fsharp and not groovy and not matlab and not yaml and not json and not ansible and not julia and not lean4 and not ocaml and not pascal and not powershell and not svelte and not csharp" | |
| fi | |
| echo "MARKERS=$MARKERS" | |
| echo "markers=$MARKERS" >> "$GITHUB_OUTPUT" | |
| - name: Run pytest | |
| shell: bash | |
| run: | | |
| set -euxo pipefail | |
| echo "Batch: ${{ matrix.batch_name }}" | |
| echo "Running: pytest -m '${{ steps.markers.outputs.markers }}'" | |
| # Catch-All only: deselect known flaky tests and environment-dependent GUI tests | |
| if [[ '${{ matrix.batch_name }}' == 'Catch-All (Core Framework & Remaining Languages)' ]]; then | |
| .venv/bin/python -m pytest \ | |
| -m "${{ steps.markers.outputs.markers }}" \ | |
| -k "not test_find_symbol_references_stable and not test_show_fatal_exception_safe" \ | |
| --maxfail=1 -q | |
| else | |
| .venv/bin/python -m pytest \ | |
| -m "${{ steps.markers.outputs.markers }}" \ | |
| --maxfail=1 -q | |
| fi |