Skip to content

Improve CI tests

Improve CI tests #218

Workflow file for this run

name: General Rust
on:
push:
branches:
- "main"
paths:
- "apps/cargo-scout-audit/**"
- "detectors/**"
- "test-cases/**"
- "Makefile"
pull_request:
paths:
- "apps/cargo-scout-audit/**"
- "detectors/**"
- "test-cases/**"
- "Makefile"
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build-cargo-scout-audit:
name: Build Scout Audit
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache cargo-scout dependencies
id: cache-cargo-scout-dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo
apps/cargo-scout-audit/target
key: ${{ runner.os }}-cargo-scout-dependencies-${{ github.run_id }}
- name: Install Rust nightly-2023-01-27
run: rustup install nightly-2023-01-27 --profile minimal
- name: Install Rust nightly-2023-04-23
run: rustup install nightly-2023-04-23 --profile minimal
- name: Install dylint-link
run: cargo install dylint-link
- name: Install cargo-scout-audit
run: cargo install --path apps/cargo-scout-audit
- name: Build detectors
working-directory: ${{ runner.temp }}
run: |
cargo new test-run
cd test-run
cargo scout-audit
- name: Compile cargo-scout-audit tests
working-directory: apps/cargo-scout-audit
run: cargo test --no-run
scout-audit-test:
name: Test Scout Audit
runs-on: ubuntu-latest
needs: build-cargo-scout-audit
strategy:
matrix:
test: ["assert-violation", "avoid-core-mem-forget", "avoid-format!-string"]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Cache cargo-scout dependencies
id: cache-cargo-scout-dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo
key: ${{ runner.os }}-cargo-scout-dependencies-${{ github.run_id }}
- name: Run tests
working-directory: apps/cargo-scout-audit
run: INTEGRATION_TESTS_TO_RUN=${{ matrix.test }} cargo test -- --nocapture
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update Rust
run: rustup update
- name: Install Rust nightly
run: rustup install nightly --profile minimal
- name: Install Rustfmt
run: rustup component add rustfmt --toolchain nightly
- name: Run cargo fmt
run: make fmt-rust-check
# clippy:
# name: Clippy
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# - name: Cache cargo-scout dependencies
# id: cache-cargo-scout-dependencies
# uses: actions/cache@v3
# with:
# path: ./apps/cargo-scout-audit/target
# key: ${{ runner.os }}-cargo-${{ hashFiles('apps/cargo-scout-audit/Cargo.lock') }}
# - name: Update Rust
# run: rustup update
# - name: Install Rust nightly-2023-01-27
# run: rustup install nightly-2023-01-27 --profile minimal
# - name: Install Rust nightly-2023-04-23
# run: rustup install nightly-2023-04-23 --profile minimal
# - name: Install Clippy nightly-2023-01-27
# run: rustup component add clippy --toolchain nightly-2023-01-27
# - name: Install Clippy nightly-2023-04-23
# run: rustup component add clippy --toolchain nightly-2023-04-23
# - name: Install dylint-link
# run: cargo install dylint-link
# - name: Run clippy
# run: make lint-rust