docs: improve newcomer onboarding and performance story #89
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: | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| rust-checks: | |
| name: Rust checks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: ubuntu-rust | |
| - name: Show Rust toolchain | |
| run: rustup show | |
| - name: Check formatting | |
| run: cargo fmt --check | |
| - name: Run clippy | |
| run: cargo clippy --workspace --all-targets --all-features -- -D warnings | |
| - name: Run workspace tests | |
| run: cargo test --workspace | |
| sqlserver-integration: | |
| name: SQL Server integration | |
| runs-on: ubuntu-latest | |
| needs: rust-checks | |
| timeout-minutes: 30 | |
| env: | |
| ARROW_SQL_SERVER_CONTAINER_RUNTIME: docker | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: ubuntu-rust | |
| - name: Show Rust toolchain | |
| run: rustup show | |
| - name: Show Docker version | |
| run: docker version | |
| # This job assumes the Linux runner has Docker available and can pull | |
| # mcr.microsoft.com/mssql/server:2017-latest. The xtask owns SQL Server | |
| # container startup, readiness, compatibility-level setup, test execution, | |
| # and cleanup so local and CI validation use the same entrypoint. | |
| - name: Run SQL Server integration tests | |
| run: cargo xtask sqlserver-test | |
| sqlserver-compat-probe: | |
| name: SQL Server compat probe (${{ matrix.version }}) | |
| runs-on: ubuntu-latest | |
| needs: rust-checks | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: "2017" | |
| image: mcr.microsoft.com/mssql/server:2017-latest | |
| compatibility-levels: "100 110 120 130 140" | |
| - version: "2019" | |
| image: mcr.microsoft.com/mssql/server:2019-latest | |
| compatibility-levels: "120 130 150" | |
| - version: "2022" | |
| image: mcr.microsoft.com/mssql/server:2022-latest | |
| compatibility-levels: "120 130 160" | |
| - version: "2025" | |
| image: mcr.microsoft.com/mssql/server:2025-latest | |
| compatibility-levels: "120 130 170" | |
| env: | |
| ARROW_SQL_SERVER_CONTAINER_RUNTIME: docker | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: ubuntu-rust | |
| - name: Show Rust toolchain | |
| run: rustup show | |
| - name: Show Docker version | |
| run: docker version | |
| - name: Run SQL Server compatibility probe | |
| run: | | |
| for compatibility_level in ${{ matrix.compatibility-levels }}; do | |
| echo "::group::SQL Server ${{ matrix.version }} compatibility level ${compatibility_level}" | |
| set +e | |
| cargo xtask sqlserver-compat-probe \ | |
| --image "${{ matrix.image }}" \ | |
| --version "${{ matrix.version }}" \ | |
| --compatibility-level "$compatibility_level" | |
| status=$? | |
| set -e | |
| echo "::endgroup::" | |
| if [ "$status" -ne 0 ]; then | |
| echo "SQL Server ${{ matrix.version }} compatibility probe failed for compatibility level ${compatibility_level}" | |
| exit "$status" | |
| fi | |
| done |