Skip to content

deps(deps): bump bytes in the cargo group across 1 directory (#205) #434

deps(deps): bump bytes in the cargo group across 1 directory (#205)

deps(deps): bump bytes in the cargo group across 1 directory (#205) #434

Workflow file for this run

name: CI
on:
push:
branches: [master]
paths-ignore:
- '*.md'
- 'docs/**'
- 'examples/**/*.md'
- '.gitignore'
- 'LICENSE*'
- '.devcontainer/**'
pull_request:
branches: [master]
paths-ignore:
- '*.md'
- 'docs/**'
- 'examples/**/*.md'
- '.gitignore'
- 'LICENSE*'
- '.devcontainer/**'
# Automatically cancel in-progress runs on the same branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
test-suite:
name: Test Suite
runs-on: ubuntu-latest
# Skip on master pushes since coverage job runs all tests
if: github.event_name == 'pull_request' || github.ref != 'refs/heads/master'
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
test-scope: [core, features]
include:
- test-scope: core
test-args: "--lib --tests"
timeout: 12
skip-on-draft: false
# - test-scope: integration
# test-args: "--test '*'"
# timeout: 15
# skip-on-draft: true
- test-scope: features
test-args: "--features postgres,mysql,sqlite,database"
timeout: 10
skip-on-draft: true
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
cache-prefix: rust-ci
- name: Run ${{ matrix.test-scope }} tests
if: matrix.skip-on-draft == false || github.event.pull_request.draft == false
uses: ./.github/actions/run-tests
with:
test-type: ${{ matrix.test-scope }}
timeout: ${{ matrix.timeout }}
quality-checks:
name: Code Quality
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
cache-prefix: rust-ci
- name: Check formatting
run: |
echo "Checking code formatting..."
cargo fmt --all -- --check
echo "Formatting check passed"
- name: Run clippy
run: |
echo "Running clippy analysis..."
cargo clippy --lib --tests --all-features -- -D warnings
echo "Clippy analysis passed"
- name: Check documentation
run: |
echo "Checking documentation..."
cargo doc --no-deps --document-private-items
echo "Documentation check passed"
coverage:
name: Code Coverage
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
cache-prefix: rust-ci
- name: Install cargo-tarpaulin
run: |
echo "Installing cargo-tarpaulin..."
cargo install cargo-tarpaulin --version 0.35.0 --locked
echo "cargo-tarpaulin installed"
- name: Generate coverage
run: |
echo "Generating code coverage..."
cargo tarpaulin --out Lcov --output-dir coverage --timeout 300 --exclude-files target/* tests/* benches/* examples/* src/main.rs
echo "Coverage generated"
continue-on-error: true
- name: Upload coverage (Codecov)
uses: codecov/codecov-action@v5.5.2
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/lcov.info
flags: rust
fail_ci_if_error: false