sqlx 0.8.3

🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
Documentation
name: SQLx CLI

on:
  pull_request:
  push:
    branches:
      - main
      - "*-dev"

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - run: |
          rustup update
          rustup component add clippy
          rustup toolchain install beta
          rustup component add --toolchain beta clippy

      - uses: Swatinem/rust-cache@v2

      - run: cargo clippy --manifest-path sqlx-cli/Cargo.toml -- -D warnings

      # Run beta for new warnings but don't break the build.
      # Use a subdirectory of `target` to avoid clobbering the cache.
      - run: >
          cargo +beta clippy
          --manifest-path sqlx-cli/Cargo.toml
          --target-dir target/beta/

  test:
    name: Test
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        # Note: macOS-latest uses M1 Silicon (ARM64)
        os:
         - ubuntu-latest
         # FIXME: migrations tests fail on Windows for whatever reason
         # - windows-latest
         - macOS-13
         - macOS-latest

    steps:
      - uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2
        with:
          key: ${{ runner.os }}-test

      - run: cargo test --manifest-path sqlx-cli/Cargo.toml

  build:
    name: Build
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        # Note: macOS-latest uses M1 Silicon (ARM64)
        os:
          - ubuntu-latest
          - windows-latest
          - macOS-13
          - macOS-latest
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-musl
            args: --features openssl-vendored
            bin: target/debug/cargo-sqlx
          - os: windows-latest
            target: x86_64-pc-windows-msvc
            bin: target/debug/cargo-sqlx.exe
          - os: macOS-13
            target: x86_64-apple-darwin
            bin: target/debug/cargo-sqlx
          - os: macOS-latest
            target: aarch64-apple-darwin
            bin: target/debug/cargo-sqlx

    steps:
      - uses: actions/checkout@v4

      - name: Use latest Rust
        run: rustup override set stable

      - uses: Swatinem/rust-cache@v2
        with:
          key: ${{ runner.os }}-cli

      - run: cargo build --manifest-path sqlx-cli/Cargo.toml --bin cargo-sqlx ${{ matrix.args }}

      - uses: actions/upload-artifact@v4
        with:
          name: cargo-sqlx-${{ matrix.target }}
          path: ${{ matrix.bin }}