Skip to content

ensure mysql microsecond resolution #89

ensure mysql microsecond resolution

ensure mysql microsecond resolution #89

Workflow file for this run

name: Rust
on:
push:
branches:
- main
pull_request: {}
env:
CARGO_TERM_COLOR: always
REDIS_URL: redis://localhost:6379/1
MONGODB_URL: mongodb://localhost:27017
POSTGRES_URL: postgres://postgres:postgres@localhost:5432
MYSQL_URL: mysql://root@localhost:3306/public
jobs:
check:
runs-on: ubuntu-latest
strategy:
matrix:
pwd:
- .
- examples
steps:
- uses: actions/checkout@v4
- run: |
rustup toolchain install nightly --profile minimal --component rustfmt --component clippy
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.pwd }}
workspaces: ${{ matrix.pwd }}
- name: clippy
working-directory: ${{ matrix.pwd }}
run: |
cargo clippy --all --all-targets --all-features
- name: rustfmt
working-directory: ${{ matrix.pwd }}
run: |
cargo fmt --all -- --check
check-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
rustup toolchain install stable --profile minimal
- uses: Swatinem/rust-cache@v2
- name: cargo doc
env:
RUSTDOCFLAGS: "-D rustdoc::broken-intra-doc-links"
run: |
cargo doc --all-features --no-deps
test:
needs: check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
rustup toolchain install stable --profile minimal
rustup toolchain install nightly --profile minimal
cargo install cargo-tarpaulin
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- name: Run tests
run: |
cargo nextest run --test integration-tests
- name: Generate code coverage
run: |
cargo tarpaulin -olcov --output-dir ./coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ./coverage/lcov.info
fail_ci_if_error: true
test-docs:
needs: check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
rustup toolchain install stable --profile minimal
- uses: Swatinem/rust-cache@v2
- name: Run doc tests
run: |
cargo test --all-features --doc
integration-tests:
needs: check
runs-on: ubuntu-latest
strategy:
matrix:
include:
- test: redis-store
features: redis-store
docker: true
- test: mongodb-store
features: mongodb-store
docker: true
- test: postgres-store
features: postgres-store
docker: true
- test: mysql-store
features: mysql-store
docker: true
- test: sqlite-store
features: sqlite-store
docker: false
- test: moka-store-dummy
features: moka-store
docker: false
- test: moka-store-sqlite
features: moka-store,sqlite-store
docker: false
steps:
- uses: actions/checkout@v4
- run: |
rustup toolchain install stable --profile minimal
cargo install cargo-tarpaulin
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- name: Start session store
if: matrix.docker
run: |
docker compose -f tests/docker-compose.yml up ${{ matrix.test }} -d
- name: Run integration tests
run: |
cargo nextest run --test ${{ matrix.test }}-integration-tests --features ${{ matrix.features }}
- name: Generate code coverage
run: |
cargo tarpaulin -olcov --features ${{ matrix.features }} --output-dir ./coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ./coverage/lcov.info
fail_ci_if_error: true