chore(deps): bump the cargo-updates group across 1 directory with 22 updates #1176
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: Tests | |
| # Prose and the site cannot break a Rust build, and a change confined to them | |
| # would otherwise run the full matrix including the Docker-backed driver suites. | |
| # | |
| # Markdown is safe to ignore here because no crate pulls it into the build: there | |
| # is no `include_str!` of a .md file, no `#[doc = include_str!]`, and no `readme` | |
| # key in any manifest. Re-check that before assuming it still holds. | |
| # | |
| # paths-ignore skips only when *every* changed file matches, so a pull request | |
| # touching code and docs together still runs. | |
| on: | |
| push: | |
| branches: [main, dev] | |
| paths-ignore: | |
| - '**/*.md' | |
| - 'web/**' | |
| - '.github/workflows/web.yml' | |
| pull_request: | |
| branches: [main, dev] | |
| paths-ignore: | |
| - '**/*.md' | |
| - 'web/**' | |
| - '.github/workflows/web.yml' | |
| workflow_call: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| # The group name must be a literal, not ${{ github.workflow }}: under | |
| # workflow_call that expression resolves to the *calling* workflow, so Release | |
| # invoking tests.yml and style.yml would put both — and the Release run itself, | |
| # whose group differs only by case — in one group and cancel them all. | |
| concurrency: | |
| group: tests-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| deterministic-tests: | |
| name: Deterministic Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| mold \ | |
| pkg-config \ | |
| libssl-dev \ | |
| libdbus-1-dev \ | |
| libxkbcommon-dev \ | |
| libxkbcommon-x11-dev | |
| - name: Setup Rust cache | |
| uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| with: | |
| shared-key: ci-deterministic | |
| cache-targets: true | |
| cache-on-failure: true | |
| - name: Run deterministic workspace tests | |
| run: cargo test --workspace --locked --features "sqlite,postgres,mysql,mssql,mongodb,redis,dynamodb,cloudwatch,influxdb,clickhouse,aws" | |
| driver-live-integration: | |
| name: Driver Live Integration | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| needs: deterministic-tests | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| mold \ | |
| pkg-config \ | |
| libssl-dev \ | |
| libdbus-1-dev \ | |
| libxkbcommon-dev \ | |
| libxkbcommon-x11-dev | |
| - name: Setup Rust cache | |
| uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| with: | |
| shared-key: ci-live-integration | |
| cache-targets: true | |
| cache-on-failure: true | |
| # Testcontainers pulls images lazily at test time, so concurrent test | |
| # binaries race to pull the same tag and anonymous Docker Hub throttling | |
| # aborts mid-stream ("bytes remaining on stream"). Pulling everything | |
| # up front, serially and with retries, removes that failure mode. | |
| - name: Pre-pull container images | |
| run: | | |
| images=( | |
| postgres:16 | |
| pgvector/pgvector:0.8.0-pg16 | |
| mysql:8.4 | |
| mongo:7 | |
| redis:7 | |
| grokzen/redis-cluster:7.0.10 | |
| clickhouse/clickhouse-server:25.8.30.16 | |
| mcr.microsoft.com/mssql/server:2022-latest | |
| amazon/dynamodb-local:latest | |
| influxdb:2.7 | |
| influxdb:1.8 | |
| minio/minio:RELEASE.2025-09-07T16-13-09Z | |
| localstack/localstack:3 | |
| ) | |
| for image in "${images[@]}"; do | |
| for attempt in 1 2 3; do | |
| if docker pull --quiet "$image"; then | |
| break | |
| fi | |
| if [ "$attempt" = 3 ]; then | |
| echo "failed to pull $image after 3 attempts" >&2 | |
| exit 1 | |
| fi | |
| sleep $((attempt * 15)) | |
| done | |
| done | |
| - name: Run PostgreSQL live integration tests | |
| run: cargo test -p dbflux_driver_postgres --locked --test live_integration -- --ignored | |
| - name: Run MySQL live integration tests | |
| run: cargo test -p dbflux_driver_mysql --locked --test live_integration -- --ignored | |
| - name: Run MongoDB live integration tests | |
| run: cargo test -p dbflux_driver_mongodb --locked --test live_integration -- --ignored | |
| - name: Run Redis live integration tests | |
| run: cargo test -p dbflux_driver_redis --locked --test live_integration -- --ignored | |
| # The all-in-one cluster image publishes fixed host ports (7000-7005), | |
| # so this suite runs single-threaded to avoid two test binaries racing | |
| # to bind the same ports. | |
| - name: Run Redis Cluster live integration tests | |
| run: cargo test -p dbflux_driver_redis --locked --test live_cluster -- --ignored --test-threads=1 | |
| - name: Run Redis RDB analyzer live integration tests | |
| run: cargo test -p dbflux_driver_redis --locked --test live_rdb -- --ignored | |
| - name: DynamoDB live integration | |
| run: cargo test -p dbflux_driver_dynamodb --locked --test live_integration -- --ignored | |
| - name: Run S3 live integration tests | |
| run: cargo test -p dbflux_driver_s3 --locked --test live_integration -- --ignored | |
| - name: Run SQLite live integration tests | |
| run: cargo test -p dbflux_driver_sqlite --locked --test live_integration | |
| # MSSQL, InfluxDB, and ClickHouse spin up one container per test (the SQL | |
| # Server image is ~2 GB), so these suites run single-threaded to avoid | |
| # exhausting the runner with concurrent containers. | |
| - name: Run MSSQL live integration tests | |
| run: cargo test -p dbflux_driver_mssql --locked --test live_integration -- --ignored --test-threads=1 | |
| - name: Run MSSQL DDL integration tests | |
| run: cargo test -p dbflux_driver_mssql --locked --test ddl_integration -- --ignored --test-threads=1 | |
| - name: Run MSSQL instance catalog tests | |
| run: cargo test -p dbflux_driver_mssql --locked --test instance_catalog -- --ignored --test-threads=1 | |
| - name: Run InfluxDB live integration tests | |
| run: cargo test -p dbflux_driver_influxdb --locked --test live_integration -- --ignored --test-threads=1 | |
| - name: Run ClickHouse live integration tests | |
| run: cargo test -p dbflux_driver_clickhouse --locked --test live_integration -- --ignored --test-threads=1 | |
| # Each test spins up its own LocalStack container (~1.3 GB image), so | |
| # this suite runs single-threaded like the MSSQL/InfluxDB/ClickHouse | |
| # suites above. | |
| - name: Run CloudWatch live integration tests | |
| run: cargo test -p dbflux_driver_cloudwatch --locked --test live_integration -- --ignored --test-threads=1 | |
| # Redshift has no Docker-based emulator; these tests hit a real Amazon | |
| # Redshift cluster and only run when the DBFLUX_TEST_REDSHIFT_* secrets | |
| # are configured (never true on a fork PR, which gets no secrets), so | |
| # the step reports a clean skip rather than failing. | |
| - name: Run Redshift live integration tests | |
| if: ${{ env.DBFLUX_TEST_REDSHIFT_HOST != '' }} | |
| env: | |
| DBFLUX_TEST_REDSHIFT_HOST: ${{ secrets.DBFLUX_TEST_REDSHIFT_HOST }} | |
| DBFLUX_TEST_REDSHIFT_PORT: ${{ secrets.DBFLUX_TEST_REDSHIFT_PORT }} | |
| DBFLUX_TEST_REDSHIFT_USER: ${{ secrets.DBFLUX_TEST_REDSHIFT_USER }} | |
| DBFLUX_TEST_REDSHIFT_PASSWORD: ${{ secrets.DBFLUX_TEST_REDSHIFT_PASSWORD }} | |
| DBFLUX_TEST_REDSHIFT_DATABASE: ${{ secrets.DBFLUX_TEST_REDSHIFT_DATABASE }} | |
| run: cargo test -p dbflux_driver_redshift --locked --test live_integration -- --ignored | |
| cross-platform-check: | |
| name: Cross-platform check ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 90 | |
| # GPUI carries a large amount of platform-specific code; a macOS- or | |
| # Windows-only break otherwise surfaces only when build.yml runs at release | |
| # or nightly tag time. A lightweight `cargo check` on each platform catches | |
| # it in the PR instead. Full test execution stays on Linux above. | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Native arm64; vendored-openssl matches build.yml (the runner has no | |
| # pkg-config-discoverable OpenSSL, so openssl-sys must build it). | |
| - os: macos-14 | |
| extra_features: ",vendored-openssl" | |
| # Native x86_64-msvc; OpenSSL is resolved on the runner as in build.yml. | |
| - os: windows-latest | |
| extra_features: "" | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| with: | |
| components: rust-src | |
| - name: Setup Rust cache | |
| uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| with: | |
| shared-key: ci-cross-check-${{ matrix.os }} | |
| cache-targets: true | |
| cache-on-failure: true | |
| - name: Cargo check | |
| run: cargo check --workspace --locked --features "sqlite,postgres,mysql,mssql,mongodb,redis,dynamodb,cloudwatch,influxdb,clickhouse,aws${{ matrix.extra_features }}" |