on:
push:
branches: ["main"]
pull_request:
name: CI
jobs:
check:
name: unit tests
runs-on: ubuntu-latest
services:
rabbitmq:
image: rabbitmq:3.11-management
ports:
- 5672:5672
volumes:
- ${{ github.workspace}}/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
steps:
- name: checkout
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: install toolchain
with:
profile: minimal
components: clippy, rustfmt
toolchain: stable
default: true
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: cargo fmt
with:
command: fmt
args: --all -- --check
- uses: actions-rs/cargo@v1
name: cargo clippy
env:
AMQP_ADDR: "amqp://localhost:5672"
with:
command: clippy
args: --all-features --all-targets --workspace -- -D warnings
- uses: actions-rs/cargo@v1
name: cargo test
env:
AMQP_ADDR: "amqp://localhost:5672"
with:
command: test
args: --all-features --workspace
- uses: actions-rs/cargo@v1
name: build examples
with:
command: build
args: --examples
coverage:
name: coverage
runs-on: ubuntu-latest
needs: [ check ]
services:
rabbitmq:
image: rabbitmq:3.11-management
ports:
- 5672:5672
volumes:
- ${{ github.workspace}}/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
steps:
- name: checkout
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: install toolchain
with:
profile: minimal
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
key: "coverage"
- uses: actions-rs/tarpaulin@v0.1
name: Run coverage
env:
AMQP_ADDR: "amqp://localhost:5672"
with:
version: '0.22.0'
args: '--workspace --all-features'
- uses: codecov/codecov-action@v3
name: Upload report to codecov