pg-extras 0.7.2

PostgreSQL performance database insights
Documentation
name: Rust CI

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

jobs:
  build:
    name: test ${{ matrix.rust }} 
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        rust: ["stable", "beta", "nightly"]
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Set up Rust
        run: | 
          rustup update ${{ matrix.rust }} 
          rustup default ${{ matrix.rust }}
          rustup component add rustfmt
          rustup component add clippy
      - uses: Swatinem/rust-cache@v2
      - name: Run PostgreSQL 12
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5432:5432 postgres:12.20-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
      - name: Run PostgreSQL 13
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5433:5432 postgres:13.16-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
      - name: Run PostgreSQL 14
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5434:5432 postgres:14.13-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
      - name: Run PostgreSQL 15
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5435:5432 postgres:15.8-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
      - name: Run PostgreSQL 16
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5436:5432 postgres:16.4-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
      - name: Run PostgreSQL 17
        run: |
          docker run --env POSTGRES_USER=postgres \
            --env POSTGRES_DB=pg-extras-rs-test \
            --env POSTGRES_PASSWORD=secret \
            -d -p 5437:5432 postgres:17.0-alpine \
            postgres -c shared_preload_libraries=pg_stat_statements
          sleep 5
      - name: Check
        run: cargo check 
      - name: Fmt
        run: cargo fmt --all --check
      - name: Lint
        run: cargo clippy --all --all-features -- -D warnings
      - name: Smoke test CLI
        env: 
          DATABASE_URL: postgres://postgres:secret@localhost:5432/pg-extras-rs-test
        run: |
          cargo run --bin pgextras --features web || cargo run --bin pgextras --features web cache-hit 
      - name: Run tests for PG 12
        env:
          PG_VERSION: 12
        run: cargo test
      - name: Run tests for PG 13
        env:
          PG_VERSION: 13
        run: cargo test
      - name: Run tests for PG 14
        env:
          PG_VERSION: 14
        run: cargo test
      - name: Run tests for PG 15
        env:
          PG_VERSION: 15
        run: cargo test
      - name: Run tests for PG 16
        env:
          PG_VERSION: 16
        run: cargo test
      - name: Run tests for PG 17
        env:
          PG_VERSION: 17
        run: cargo test