Rename the application Cargo package from irtt-cli to irtt-rs (crates/irtt-cli -> crates/irtt-app), and hard-rename its scriptable client binary from irtt-cli to irtt-client, now that the application also ships a first-class server and the old name reads as an umbrella CLI for both roles. Give each dedicated binary (irtt-client, irtt-tui, irtt-server) its own entry point instead of funneling through the multicall dispatcher's argv0/subcommand logic, so a dedicated binary only links the applet code for the role it implements and always runs that role regardless of the name it's invoked or copied under. irtt-rs remains the feature-selectable multicall dispatcher and is now the only binary that inspects argv0 or subcommands. Move future application releases to the irtt-rs/vX.Y.Z tag namespace (regenerated via `dist generate`), and bump the application package to 0.6.0 as a breaking distribution change. Library crate versions are unaffected.
76 lines
2.0 KiB
YAML
76 lines
2.0 KiB
YAML
name: Netem Interop
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
GOBIN: ${{ github.workspace }}/.tools/bin
|
|
IRTT_UPSTREAM_VERSION: v0.9.1
|
|
|
|
jobs:
|
|
netem:
|
|
name: netem interop
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Install Rust toolchain
|
|
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
|
|
with:
|
|
cache-key: interop-netem
|
|
|
|
- name: Check host tools
|
|
run: |
|
|
ip -V
|
|
tc -V
|
|
go version
|
|
|
|
- name: Install upstream irtt
|
|
run: |
|
|
mkdir -p "$GOBIN"
|
|
go install "github.com/heistp/irtt/cmd/irtt@${IRTT_UPSTREAM_VERSION}"
|
|
"$GOBIN/irtt" version
|
|
|
|
- name: Build irtt-rs client
|
|
run: cargo build -p irtt-rs --bin irtt-client --locked
|
|
|
|
- name: Run netem interop comparisons
|
|
run: |
|
|
python3 scripts/run_netem_interop_ci.py \
|
|
--all \
|
|
--skip-build \
|
|
--upstream-irtt "$GOBIN/irtt" \
|
|
--irtt-rs-command "$PWD/target/debug/irtt-client"
|
|
|
|
- name: Append netem interop summary
|
|
if: always()
|
|
run: |
|
|
latest_summary="$(find target/interop-netem -mindepth 2 -maxdepth 2 -name github-step-summary.md -type f -print 2>/dev/null | sort | tail -n 1)"
|
|
if [ -n "$latest_summary" ]; then
|
|
cat "$latest_summary" >> "$GITHUB_STEP_SUMMARY"
|
|
else
|
|
echo "No netem interop github-step-summary.md found." >> "$GITHUB_STEP_SUMMARY"
|
|
fi
|
|
|
|
- name: Upload netem interop artifacts
|
|
if: always()
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
|
with:
|
|
name: interop-netem
|
|
path: target/interop-netem
|