name: CI on: push: branches: ['main', '0.6.x', '0.5.x'] pull_request: schedule: - cron: "21 3 * * 5" jobs: test-freebsd: # see https://github.com/actions/runner/issues/385 # use https://github.com/vmactions/freebsd-vm for now name: test on freebsd runs-on: macos-12 steps: - uses: actions/checkout@v2 - name: test on freebsd uses: vmactions/freebsd-vm@v0 with: usesh: true mem: 4096 copyback: false prepare: | pkg install -y curl curl https://sh.rustup.rs -sSf --output rustup.sh sh rustup.sh -y --profile minimal --default-toolchain stable echo "~~~~ rustc --version ~~~~" $HOME/.cargo/bin/rustc --version run: | freebsd-version $HOME/.cargo/bin/cargo build --all-targets $HOME/.cargo/bin/cargo test $HOME/.cargo/bin/cargo test --manifest-path fuzz/Cargo.toml test: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] rust: [stable, beta, 1.59.0] exclude: - os: macos-latest rust: beta - os: macos-latest rust: 1.59.0 - os: windows-latest rust: beta - os: windows-latest rust: 1.59.0 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true - uses: Swatinem/rust-cache@v1 - uses: actions-rs/cargo@v1 with: command: build args: --all-targets - uses: actions-rs/cargo@v1 with: command: test - uses: actions-rs/cargo@v1 if: ${{ matrix.rust }} == "stable" with: command: test args: --manifest-path fuzz/Cargo.toml lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - uses: Swatinem/rust-cache@v1 - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets -- -D warnings - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: clippy - name: doc run: cargo doc --no-deps --document-private-items env: RUSTDOCFLAGS: -Dwarnings - name: lint fuzz run: | cd fuzz cargo clippy -- -D warnings audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: EmbarkStudios/cargo-deny-action@v1