Bump undici from 7.12.0 to 7.28.0 in /Lql/LqlExtension #174
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: | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| DOTNET_VERSION: '9.0.x' | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| DOTNET_CLI_TELEMETRY_OPTOUT: true | |
| jobs: | |
| # Track 1: Format Check All -> Lint All -> DataProvider Tests | |
| lint-and-dataprovider: | |
| name: Lint + DataProvider Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ env.DOTNET_VERSION }} | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Cache NuGet packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nuget/packages | |
| key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.fsproj') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nuget- | |
| - name: Cache Cargo registry | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| Lql/lql-lsp-rust/target | |
| key: ${{ runner.os }}-cargo-lint-${{ hashFiles('Lql/lql-lsp-rust/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-lint- | |
| ${{ runner.os }}-cargo- | |
| - name: Restore .NET tools | |
| run: dotnet tool restore | |
| - name: Install Node dependencies (LQL Extension) | |
| run: cd Lql/LqlExtension && npm install --no-audit --no-fund | |
| - name: Format check | |
| run: make fmt CHECK=1 | |
| - name: Lint | |
| run: make lint | |
| - name: Build CLI tools (needed by F# Type Provider MSBuild targets) | |
| run: | | |
| dotnet build Migration/DataProviderMigrate -c Debug | |
| dotnet build DataProvider/DataProvider -c Debug | |
| - name: Test DataProvider (with coverage enforcement) | |
| run: >- | |
| make _test_dotnet DOTNET_TEST_PROJECTS="DataProvider/Nimblesite.DataProvider.Tests | |
| DataProvider/Nimblesite.DataProvider.Example.Tests" | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-dataprovider | |
| path: '**/TestResults/*.trx' | |
| # Track 2: Build All -> LQL Tests -> Migration Tests -> Sync Tests | |
| build-and-test: | |
| name: Build + LQL / Migration / Sync Tests | |
| runs-on: ubuntu-latest | |
| # 15min was insufficient since the new ANTLR Postgres parser + vector | |
| # support landed: pgvector image pull, cargo-tarpaulin install, full | |
| # Sync test matrix, and the new Postgres E2E vector tests push the | |
| # job past 15 min consistently. 30 min gives realistic headroom. | |
| timeout-minutes: 30 | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: changeme | |
| POSTGRES_DB: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| env: | |
| DOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ env.DOTNET_VERSION }} | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-tarpaulin | |
| run: cargo install cargo-tarpaulin | |
| - name: Cache NuGet packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nuget/packages | |
| key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.fsproj') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nuget- | |
| - name: Cache Cargo registry + build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| Lql/lql-lsp-rust/target | |
| key: ${{ runner.os }}-cargo-build-${{ hashFiles('Lql/lql-lsp-rust/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-build- | |
| ${{ runner.os }}-cargo- | |
| - name: Restore .NET tools (h5, csharpier, ilspycmd) | |
| run: dotnet tool restore | |
| - name: Build .NET | |
| run: dotnet build DataProvider.sln -c Debug | |
| - name: Build Rust | |
| run: cd Lql/lql-lsp-rust && cargo build | |
| - name: Install Playwright browsers (Reporting.Integration.Tests) | |
| run: | | |
| dotnet build Reporting/Nimblesite.Reporting.Integration.Tests -c Debug | |
| PWSCRIPT=$(find Reporting/Nimblesite.Reporting.Integration.Tests/bin -name 'playwright.ps1' | head -1) | |
| if [ -z "$PWSCRIPT" ]; then | |
| echo "playwright.ps1 not found under Reporting.Integration.Tests bin"; exit 1 | |
| fi | |
| pwsh "$PWSCRIPT" install --with-deps chromium | |
| - name: Test LQL + Migration + Sync + Reporting (with coverage enforcement) | |
| run: >- | |
| make _test_dotnet DOTNET_TEST_PROJECTS="Lql/Nimblesite.Lql.Tests | |
| Lql/Nimblesite.Lql.TypeProvider.FSharp.Tests | |
| Migration/Nimblesite.DataProvider.Migration.Tests | |
| Sync/Nimblesite.Sync.Tests | |
| Sync/Nimblesite.Sync.SQLite.Tests | |
| Sync/Nimblesite.Sync.Postgres.Tests | |
| Sync/Nimblesite.Sync.Integration.Tests | |
| Sync/Nimblesite.Sync.Http.Tests | |
| Reporting/Nimblesite.Reporting.Tests | |
| Reporting/Nimblesite.Reporting.Integration.Tests" | |
| env: | |
| TESTCONTAINERS_RYUK_DISABLED: false | |
| - name: Test LQL Rust (with coverage enforcement) | |
| run: make _test_rust | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-build | |
| path: '**/TestResults/*.trx' | |
| # Track 3: Build All -> LQL Extension Tests | |
| extension-tests: | |
| name: LQL Extension Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: changeme | |
| POSTGRES_DB: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Cargo registry + build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| Lql/lql-lsp-rust/target | |
| key: ${{ runner.os }}-cargo-extension-${{ hashFiles('Lql/lql-lsp-rust/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-extension- | |
| ${{ runner.os }}-cargo- | |
| - name: Install VSCode runtime dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| xvfb \ | |
| libnss3 \ | |
| libgbm1 \ | |
| libdrm2 \ | |
| libxkbcommon-x11-0 \ | |
| libgtk-3-0 \ | |
| libasound2t64 \ | |
| libsecret-1-0 \ | |
| libsndio7.0 || \ | |
| sudo apt-get install -y --no-install-recommends \ | |
| xvfb \ | |
| libnss3 \ | |
| libgbm1 \ | |
| libdrm2 \ | |
| libxkbcommon-x11-0 \ | |
| libgtk-3-0 | |
| - name: Build lql-lsp binary (release) | |
| run: cd Lql/lql-lsp-rust && cargo build --release -p lql-lsp | |
| - name: Verify lql-lsp --version | |
| run: | | |
| ./Lql/lql-lsp-rust/target/release/lql-lsp --version | |
| # Confirm the printed version matches the VSIX package.json version | |
| BIN_VERSION=$(./Lql/lql-lsp-rust/target/release/lql-lsp --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+') | |
| VSIX_VERSION=$(jq -r '.version' Lql/LqlExtension/package.json) | |
| echo "Binary version: $BIN_VERSION" | |
| echo "VSIX version: $VSIX_VERSION" | |
| if [ "$BIN_VERSION" != "$VSIX_VERSION" ]; then | |
| echo "ERROR: lql-lsp --version ($BIN_VERSION) does not match VSIX version ($VSIX_VERSION)" | |
| exit 1 | |
| fi | |
| - name: Install dependencies | |
| run: cd Lql/LqlExtension && npm install --no-audit --no-fund | |
| - name: Test Extension (with coverage enforcement) | |
| env: | |
| POSTGRES_CONNECTION_STRING: "Host=localhost;Port=5432;Username=postgres;Password=changeme;Database=postgres" | |
| run: | | |
| export PATH="$PWD/Lql/lql-lsp-rust/target/release:$PATH" | |
| make _test_ts | |
| - name: Package VSIX (dry run) | |
| run: cd Lql/LqlExtension && npm run compile && npx vsce package --no-git-tag-version --no-update-package-json |