net-queue 0.4.1

A framework to abstract network queues
Documentation
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