Skip to content

Allow to customize the recycle check function used in deadpool_diesel #275

Allow to customize the recycle check function used in deadpool_diesel

Allow to customize the recycle check function used in deadpool_diesel #275

Workflow file for this run

name: CI
on:
push:
branches: ["master"]
tags: ["deadpool-*"]
pull_request:
branches: ["master"]
env:
RUST_BACKTRACE: 1
jobs:
##########################
# Linting and formatting #
##########################
clippy:
strategy:
fail-fast: false
matrix:
crate:
- deadpool
- deadpool-diesel
- deadpool-lapin
- deadpool-memcached
- deadpool-postgres
- deadpool-r2d2
- deadpool-redis
- deadpool-redis-cluster
- deadpool-runtime
- deadpool-sqlite
- deadpool-sync
# Examples
- example-postgres-actix-web
- example-postgres-benchmark
- example-postgres-hyper
- example-redis-actix-web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy
- run: cargo clippy -p ${{ matrix.crate }} --no-deps --all-features -- -D warnings
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt
- run: cargo fmt --all --check
###########
# Testing #
###########
check-deadpool:
name: Check deadpool
strategy:
fail-fast: false
matrix:
feature1:
- managed
- unmanaged
feature2:
- rt_tokio_1
- rt_async-std_1
- serde
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- run: cargo check -p deadpool
--no-default-features
--features ${{ matrix.feature1 }},${{ matrix.feature2 }}
check-integration:
name: Check integration
strategy:
fail-fast: false
matrix:
crate:
- diesel
- lapin
- postgres
- redis
- redis-cluster
- sqlite
feature:
- rt_tokio_1
- rt_async-std_1
- serde
include: # additional inclusions for matrix
- crate: diesel
feature: mysql
- crate: diesel
feature: postgres
- crate: diesel
feature: sqlite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
# We don't use `--no-default-features` here as integration crates don't
# work with it at all.
- run: cargo check -p deadpool-${{ matrix.crate }}
--features ${{ matrix.feature }}
msrv:
name: MSRV
strategy:
fail-fast: false
matrix:
include:
- { crate: deadpool, msrv: '1.54.0' }
# TODO: Doesn't work with `pq-sys = 0.3.0` because of
# `rustc-serialize = 0.3.19`. Try re-enable it on next `diesel`
# major version upgrade.
#- { crate: deadpool-diesel, msrv: '1.54.0' }
- { crate: deadpool-lapin, msrv: '1.56.0' }
- { crate: deadpool-postgres, msrv: '1.54.0' }
- { crate: deadpool-redis, msrv: '1.59.0' }
- { crate: deadpool-redis-cluster, msrv: '1.54.0' }
- { crate: deadpool-sqlite, msrv: '1.56.0' }
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.msrv }}
override: true
- run: cargo +nightly update -Z minimal-versions
- run: cargo check -p ${{ matrix.crate }} --all-features
test:
strategy:
fail-fast: false
matrix:
crate:
- deadpool
- deadpool-diesel
- deadpool-lapin
- deadpool-postgres
- deadpool-redis
- deadpool-redis-cluster
- deadpool-sqlite
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15.3-alpine
ports:
- 5432:5432
env:
POSTGRES_USER: deadpool
POSTGRES_PASSWORD: deadpool
POSTGRES_DB: deadpool
# Health checks to wait until Postgres has started.
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:7.0-alpine
ports:
- 6379:6379
redis-cluster:
image: grokzen/redis-cluster:7.0.10
ports:
- 7000-7005:7000-7005
rabbitmq:
image: rabbitmq:3.11-alpine
ports:
- 5672:5672
env:
RABBITMQ_DEFAULT_USER: deadpool
RABBITMQ_DEFAULT_PASS: deadpool
RABBITMQ_DEFAULT_VHOST: deadpool
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- run: cargo test -p ${{ matrix.crate }} --all-features
env:
PG__HOST: 127.0.0.1
PG__PORT: 5432
PG__USER: deadpool
PG__PASSWORD: deadpool
PG__DBNAME: deadpool
REDIS__URL: redis://127.0.0.1/
REDIS_CLUSTER__URLS: redis://127.0.0.1:7000,redis://127.0.0.1:7001
AMQP__URL: amqp://deadpool:[email protected]/deadpool
############
# Building #
############
rustdoc:
name: Docs
strategy:
matrix:
crate:
- deadpool
- deadpool-diesel
- deadpool-lapin
- deadpool-postgres
- deadpool-redis
- deadpool-redis-cluster
- deadpool-sqlite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- run: cargo doc -p ${{ matrix.crate }} --no-deps --all-features