zero-mysql 0.6.0

A high-performance MySQL client
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  CARGO_TERM_COLOR: always

jobs:
  fmt:
    name: Format
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: rustfmt
      - run: cargo fmt --all --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@nightly
        with:
          components: clippy
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy --all-targets --all-features -- -D warnings

  test-db-backends:
    name: Test / ${{ matrix.db-image }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - db-image: mariadb:10.11
            health-cmd: "healthcheck.sh --connect --innodb_initialized"
          - db-image: mariadb:11.4
            health-cmd: "healthcheck.sh --connect --innodb_initialized"
          - db-image: mariadb:12.3-rc
            health-cmd: "healthcheck.sh --connect --innodb_initialized"
          - db-image: percona/percona-server:8.0
            health-cmd: "mysqladmin ping -h 127.0.0.1 -u root"
          - db-image: percona/percona-server:8.4
            health-cmd: "mysqladmin ping -h 127.0.0.1 -u root"
          - db-image: mysql:8.0
            health-cmd: "mysqladmin ping -h 127.0.0.1 -u root"
          - db-image: mysql:8.4
            health-cmd: "mysqladmin ping -h 127.0.0.1 -u root"
    services:
      mysql:
        image: ${{ matrix.db-image }}
        env:
          MYSQL_USER: test
          MYSQL_PASSWORD: "1234"
          MYSQL_DATABASE: test
          MYSQL_ALLOW_EMPTY_ROOT_PASSWORD: "yes"
          MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
          MARIADB_USER: test
          MARIADB_PASSWORD: "1234"
          MARIADB_DATABASE: test
          MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: "yes"
        ports:
          - 3306:3306
        options: >-

          --health-cmd "${{ matrix.health-cmd }}"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@nightly
      - uses: Swatinem/rust-cache@v2
      - name: Run tests
        run: cargo test --all-features
        env:
          DATABASE_URL: mysql://test:1234@localhost/test