async-sqlx-session 0.4.0

sqlx session store for async-session
Documentation
name: CI

on:
  pull_request:
  push:
    branches:
      - main

env:
  RUSTFLAGS: -Dwarnings
  POSTGRES_DB: async_sqlx_session_tests
  PG_TEST_DB_URL: postgres://postgres:postgres@localhost/async_sqlx_session_tests
  MYSQL_DB: async_sqlx_session_tests
  MYSQL_TEST_DB_URL: mysql://root:root@localhost/async_sqlx_session_tests

jobs:
  build_and_test:
    name: Build and test
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust: [stable, nightly]

    services:
      postgres:
        image: postgres
        env:
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: async_sqlx_session_tests
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        ports:
          - 5432:5432

      mysql:
        image: mysql
        env:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: async_sqlx_session_tests
        ports:
          - 3306:3306
        options: >-
          --health-cmd "mysqladmin ping"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 3

    steps:
    - uses: actions/checkout@main

    - name: Install ${{ matrix.rust }}
      uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.rust }}
        override: true

    - name: check avoid-dev-deps
      uses: actions-rs/cargo@v1
      if: matrix.rust == 'nightly'
      with:
        command: check
        args: --all -Z avoid-dev-deps

    - name: pg tests
      uses: actions-rs/cargo@v1
      with:
        command: test
        args: --all --features pg,async_std -- --test-threads=1

    - name: sqlite tests
      uses: actions-rs/cargo@v1
      with:
        command: test
        args: --all --features sqlite,async_std

    - name: mysql tests
      uses: actions-rs/cargo@v1
      with:
        command: test
        args: --all --features mysql,async_std -- --test-threads=1

  check_fmt_and_docs:
    name: Checking fmt, clippy, and docs
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@main

    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true

    - name: setup
      run: |
        rustup component add clippy rustfmt
        rustc --version

    - name: clippy
      run: cargo clippy -- -D warnings

    - name: fmt
      run: cargo fmt --all -- --check

    - name: Docs
      run: cargo doc --no-deps