siderophile 0.2.1

Find the ideal fuzz targets in a Rust codebase
name: CI

on:
  push:
    branches:
      - master
  pull_request:
  schedule:
    # run CI every day even if no PRs/merges occur
    - cron: "0 12 * * *"

concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Install LLVM
        run: |
          wget https://apt.llvm.org/llvm.sh
          chmod +x llvm.sh
          sudo ./llvm.sh 14
      - uses: actions/checkout@v2
      - name: Format
        run: cargo fmt && git diff --exit-code
      - name: Lint
        run: |
          rustup update
          rustup component add clippy
          cargo clippy -- -D warnings -D clippy::pedantic -D clippy::nursery -D clippy::expect_used -D clippy::panic -D clippy::unwrap_used
      - name: Cargo sort
        run: |
          cargo install cargo-sort
          cargo sort -c
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Install LLVM
        run: |
          wget https://apt.llvm.org/llvm.sh
          chmod +x llvm.sh
          sudo ./llvm.sh 14
      - uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Unit tests
        run: cargo test
      - name: Integration tests
        run: |
          cargo build --release
          cd tests
          ./run_tests.sh