Wire crawler into MUI.Web and remove direct telnet option byte writes… #76
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: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| build-and-test: | |
| name: build & test (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up .NET 10 SDK | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Restore | |
| run: dotnet restore MUIndex.slnx | |
| # Warnings are errors solution-wide (Directory.Build.props), so a clean build is the signal. | |
| - name: Build | |
| run: dotnet build MUIndex.slnx -c Release --no-restore | |
| # TUnit runs on Microsoft.Testing.Platform; execute each of the five test projects directly, | |
| # because the classic `dotnet test`/VSTest path is not available on .NET 10. | |
| # The Catalog and Crawler suites want a real PostgreSQL 17 through Testcontainers. On a laptop | |
| # with no container runtime they skip by name, which is honest — but a silently skipped storage | |
| # suite in CI is a green build that tested no storage, so the Linux leg (where a Docker daemon | |
| # is present) demands one and fails if it cannot get it. | |
| - name: Test — Catalog | |
| shell: bash | |
| env: | |
| MUI_REQUIRE_POSTGRES: ${{ matrix.os == 'ubuntu-latest' }} | |
| run: dotnet run -c Release --no-build --project tests/MUI.Catalog.Tests/MUI.Catalog.Tests.csproj | |
| - name: Test — Crawl | |
| shell: bash | |
| run: dotnet run -c Release --no-build --project tests/MUI.Crawl.Tests/MUI.Crawl.Tests.csproj | |
| - name: Test — Discovery | |
| shell: bash | |
| run: dotnet run -c Release --no-build --project tests/MUI.Discovery.Tests/MUI.Discovery.Tests.csproj | |
| # The Crawler suite runs whole crawl cycles against a real PostgreSQL with the socket replaced, | |
| # so it wants a database for the same reason the Catalog suite does — and more so, because the | |
| # advisory lock that keeps N replicas to one crawler is a database behaviour with nothing about | |
| # it to fake. | |
| - name: Test — Crawler | |
| shell: bash | |
| env: | |
| MUI_REQUIRE_POSTGRES: ${{ matrix.os == 'ubuntu-latest' }} | |
| run: dotnet run -c Release --no-build --project tests/MUI.Crawler.Tests/MUI.Crawler.Tests.csproj | |
| - name: Test — Web | |
| shell: bash | |
| run: dotnet run -c Release --no-build --project tests/MUI.Web.Tests/MUI.Web.Tests.csproj |