diff --git a/.github/workflows/lint-rules.yml b/.github/workflows/lint-rules.yml new file mode 100644 index 0000000..e65486b --- /dev/null +++ b/.github/workflows/lint-rules.yml @@ -0,0 +1,40 @@ +--- +name: lint-rules + +on: + pull_request: + paths: + - 'rules/**' + - 'src/**' + - 'Cargo.toml' + - 'Cargo.lock' + - '.github/workflows/lint-rules.yml' + push: + branches: [master] + paths: + - 'rules/**' + - 'src/**' + +jobs: + lint-rules: + name: Validate detection rules + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + submodules: recursive + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Cache cargo build + uses: Swatinem/rust-cache@v2 + + - name: Build chainsaw + run: cargo build --release + + # Lints against the binary built from this PR, so a rule relying on a + # schema change in the same PR is validated against that change. + - name: Lint detection rules + run: ./target/release/chainsaw --no-banner lint --kind chainsaw rules/ diff --git a/.github/workflows/v2.yml b/.github/workflows/v2.yml index 85fef47..6caddae 100644 --- a/.github/workflows/v2.yml +++ b/.github/workflows/v2.yml @@ -14,12 +14,9 @@ jobs: with: submodules: recursive - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - profile: minimal - override: true - target: x86_64-unknown-linux-gnu + targets: x86_64-unknown-linux-gnu - name: Create artifacts directory run: mkdir chainsaw - name: Build @@ -54,12 +51,9 @@ jobs: - name: Install Target run: sudo apt install gcc-aarch64-linux-gnu - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - profile: minimal - override: true - target: aarch64-unknown-linux-gnu + targets: aarch64-unknown-linux-gnu - name: Create artifacts directory run: mkdir chainsaw - name: Build @@ -93,11 +87,7 @@ jobs: with: submodules: recursive - name: Install latest rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - default: true - override: true + uses: dtolnay/rust-toolchain@stable - name: Build run: cargo build --all --release - name: Upload binary artifact @@ -130,12 +120,9 @@ jobs: with: submodules: recursive - name: Install latest rust toolchain - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - target: x86_64-apple-darwin - default: true - override: true + targets: x86_64-apple-darwin - name: Create artifacts directory run: mkdir chainsaw - name: Build for mac @@ -166,12 +153,9 @@ jobs: with: submodules: recursive - name: Install latest rust toolchain - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@stable with: - toolchain: stable - target: aarch64-apple-darwin - default: true - override: true + targets: aarch64-apple-darwin - name: Create artifacts directory run: mkdir chainsaw - name: Build for mac