CI / cargo fmt (push) Has been cancelled
CI / cargo clippy (macos-latest) (push) Has been cancelled
CI / cargo clippy (ubuntu-latest) (push) Has been cancelled
CI / cargo clippy (windows-latest) (push) Has been cancelled
CI / cargo test (macos-latest) (push) Has been cancelled
CI / cargo test (ubuntu-latest) (push) Has been cancelled
CI / cargo test (windows-latest) (push) Has been cancelled
CI / cargo build (macos-latest) (push) Has been cancelled
CI / cargo build (ubuntu-latest) (push) Has been cancelled
CI / cargo build (windows-latest) (push) Has been cancelled
CI / cargo build --release (macos-latest) (push) Has been cancelled
CI / cargo build --release (ubuntu-latest) (push) Has been cancelled
CI / cargo build --release (windows-latest) (push) Has been cancelled
CI / CLI smoke (macos-latest) (push) Has been cancelled
CI / CLI smoke (ubuntu-latest) (push) Has been cancelled
CI / CLI smoke (windows-latest) (push) Has been cancelled
CI / Minimal E2E (macos-latest) (push) Has been cancelled
CI / Minimal E2E (ubuntu-latest) (push) Has been cancelled
CI / Minimal E2E (windows-latest) (push) Has been cancelled
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# Tooling
|
|
|
|
## Build system
|
|
|
|
Cargo is the sole build tool. No custom build scripts or Makefiles are used.
|
|
|
|
- `cargo build` — debug build
|
|
- `cargo build --release` — optimized release build
|
|
- `cargo check` — fast type-checking
|
|
|
|
## Linting and formatting
|
|
|
|
- `cargo fmt --check` — enforces rustfmt formatting
|
|
- `cargo clippy --all-targets -- -D warnings` — runs clippy on all targets with warnings as errors
|
|
|
|
## CI/CD
|
|
|
|
GitHub Actions runs the full matrix on every push and PR:
|
|
|
|
| Job | Platforms | Purpose |
|
|
| --- | --------- | ------- |
|
|
| `fmt` | Ubuntu | Format check |
|
|
| `clippy` | Linux, macOS, Windows | Lint check |
|
|
| `test` | Linux, macOS, Windows | Unit and inline tests |
|
|
| `build` | Linux, macOS, Windows | Debug build |
|
|
| `release-build` | Linux, macOS, Windows | Release build + artifact upload |
|
|
| `smoke` | Linux, macOS, Windows | CLI smoke tests (--help, version, invalid command/port) |
|
|
| `e2e-minimal` | Linux, macOS, Windows | Full end-to-end flow: generate, listen, connect, SOCKS5, curl |
|
|
|
|
The E2E job uses `cargo run --release --` for OS-neutral binary invocation and includes cross-platform cleanup helpers (`kill_process`, `kill_by_port`) invoked via `trap cleanup EXIT`.
|
|
|
|
## Dependencies
|
|
|
|
Dependencies are managed in `Cargo.toml`. Notable choices:
|
|
|
|
- `tokio` with `full` features for async runtime
|
|
- `rustls` with `ring` for TLS (no OpenSSL)
|
|
- `rcgen` for certificate generation
|
|
- `clap` with `derive` for CLI parsing
|
|
- `tracing` and `tracing-subscriber` for structured logging
|