Skip to content

feat(postex): ADR-160 meterpreter 後滲透加值(post 輸出結構化 + session.info→cur… #98

feat(postex): ADR-160 meterpreter 後滲透加值(post 輸出結構化 + session.info→cur…

feat(postex): ADR-160 meterpreter 後滲透加值(post 輸出結構化 + session.info→cur… #98

Workflow file for this run

name: CI
# Gate the athena-2.0 (Rust workspace) branch on the same checks that were previously
# only enforced manually via `make test` / `make clippy`. main is a separate lineage
# (Python project) and is intentionally NOT covered here.
on:
push:
branches: [athena-2.0]
pull_request:
branches: [athena-2.0]
# Cancel superseded runs on the same ref to save CI minutes.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
build-test:
name: clippy + test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# reqwest/native-tls -> openssl needs these on a clean runner.
- name: Install system deps
run: sudo apt-get update && sudo apt-get install -y pkg-config libssl-dev
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v2
# Hard gates — both verified green locally (391 tests, clippy -D warnings clean).
# --all-targets covers test/bench/example code too (ADR-150 follow-up: the
# no-flag form had a blind spot that let ~14 test-code lints accumulate).
- name: clippy (-D warnings, all targets)
run: cargo clippy --workspace --all-targets -- -D warnings
- name: test (workspace)
run: cargo test --workspace
# Informational only for now: the tree is not yet rustfmt-clean. Flip to a hard
# gate after a one-time `cargo fmt --all` pass (separate PR/decision).
- name: fmt check (non-blocking)
run: cargo fmt --all --check
continue-on-error: true