name: Code Buster CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
verify:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
binary: target/release/cb
completion-shell: bash
- os: macos-15
binary: target/release/cb
completion-shell: zsh
- os: windows-latest
binary: target/release/cb.exe
completion-shell: powershell
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 - uses: dtolnay/rust-toolchain@360a4e93673de6630fac2478bc9e35244b01a759 with:
components: clippy,rustfmt
- run: cargo fmt --all -- --check
- run: cargo clippy --all-targets --all-features --locked -- -D warnings
- run: cargo test --all-targets --all-features --locked
- run: cargo build --release --locked
- name: Smoke release binary
shell: bash
run: |
'${{ matrix.binary }}' version
'${{ matrix.binary }}' config --files --root tests/fixtures/preview --format json > files.json
'${{ matrix.binary }}' summary --root tests/fixtures/preview --format json --advisory --allow-empty > summary.json
'${{ matrix.binary }}' completions '${{ matrix.completion-shell }}' > completion.txt
security-audit:
runs-on: ubuntu-latest
permissions:
contents: read
checks: write
steps:
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 - uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998 with:
token: ${{ secrets.GITHUB_TOKEN }}
package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 - uses: dtolnay/rust-toolchain@360a4e93673de6630fac2478bc9e35244b01a759 - run: python3 -B -m unittest tool/test_release_notes.py
- run: cargo package --locked
- run: ./tool/rehearse-release.sh "$RUNNER_TEMP/cb-rehearsal"