Skip to content

harden tProxy Sv1 session and channel lifecycle #2671

harden tProxy Sv1 session and channel lifecycle

harden tProxy Sv1 session and channel lifecycle #2671

on:
push:
branches:
- main
pull_request:
branches:
- main
name: Integration Tests
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/target
jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@1.88
- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
cache-bin: "false"
# Hash every Cargo workspace without registering the shared target more than once.
key: cargo-inputs-${{ hashFiles('**/Cargo.toml', '**/Cargo.lock') }}
workspaces: integration-tests -> ../target
- name: Install capnp dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y capnproto libcapnp-dev
- name: Install capnp dependencies (macOS)
if: matrix.os == 'macos-latest'
run: brew install capnp
# Install cargo-binstall so tool installs below use prebuilt binaries.
- name: Install cargo-binstall
uses: cargo-bins/cargo-binstall@v1.20.0
with:
version: "1.20.0"
# Install cargo-nextest via cargo-binstall (no source build).
# Keep quick-install disabled to only use upstream release artifacts.
- name: Install cargo-nextest
env:
GITHUB_TOKEN: ${{ github.token }}
run: cargo binstall --no-confirm --disable-telemetry --disable-strategies quick-install --locked cargo-nextest@0.9.100
# Failure triage: re-run a single test with captured logs shown live:
# RUST_LOG=debug cargo nextest run --manifest-path=integration-tests/Cargo.toml \
# -E 'test(<name>)' --no-capture
- name: Integration Tests
run: |
RUST_BACKTRACE=1 RUST_LOG=debug cargo nextest run --manifest-path=integration-tests/Cargo.toml