atprotocol 0.0.1

An AT Protocol Library
Documentation
name: Test, Static Analysis, and Containerization

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
    paths:
      - "crates/**"
      - "src/**"
      - "**/Cargo.toml"
      - "**/Cargo.lock"
      - ".github/workflows/build.yaml"

jobs:
  test-audit-build:
    runs-on: ubuntu-22.04

    steps:
      # Checkout
      - name: Checkout repository
        uses: actions/checkout@v3

      # Install Tools
      - name: Install protoc
        uses: arduino/setup-protoc@v1
      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          components: clippy, rustfmt
          override: true
      - uses: ilammy/setup-nasm@v1
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1

      # Run Tests
      - name: Test
        run: cargo test
        id: test

      # Static Analysis
      - run: cargo audit --ignore RUSTSEC-2021-0139
      - run: cargo clippy --all-targets --all-features --workspace --no-deps -- -D warnings
      - run: cargo fmt --all -- --check

      # Build
      - run: cargo build --release