Skip to content

add support for the handshakes per second benchmark test #79

add support for the handshakes per second benchmark test

add support for the handshakes per second benchmark test #79

Workflow file for this run

name: Orchestrator
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
python:
name: Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Ruff
uses: astral-sh/ruff-action@278981a28ce3188b1e39527901f38254bf3aac89 # v4.1.0
with:
version: "0.16.4"
args: "--version"
- name: Lint
run: ruff check --output-format=github .
- name: Check formatting
run: ruff format --check --diff .
- name: Test
run: python3 -m unittest discover -s orchestrator -v
integration:
name: Integration
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Generate SSH key
run: ssh-keygen -q -t ed25519 -N "" -f "${RUNNER_TEMP}/quic-perf"
- name: Install Packer
uses: hashicorp/setup-packer@ce93c3c08a6c2ff2275bf4b54ff0d9a75f6c9789 # v3.4.0
with:
version: "1.15.2"
- name: Build runner image
env:
PKR_VAR_build_commit: ${{ github.sha }}
run: |
packer init .
packer build -only=docker.ubuntu -var "ssh_public_key_primary=$(cat "${RUNNER_TEMP}/quic-perf.pub")" .
- name: Start runner containers
run: |
docker network create quic-perf
docker run -d --name server --network quic-perf -p 127.0.0.1:2222:22 \
quic-perf-runner:local
docker run -d --name client --network quic-perf -p 127.0.0.1:2223:22 \
quic-perf-runner:local
- name: Run quic-go throughput benchmark
run: |
python3 orchestrator/run_benchmark.py throughput \
--identity-file "${RUNNER_TEMP}/quic-perf" \
--server-host 127.0.0.1 --server-ssh-port 2222 \
--client-host 127.0.0.1 --client-ssh-port 2223 \
--server-address server \
--server-implementation quic-go --client-implementation quic-go \
--download-bytes 1000000
- name: Run MsQuic throughput benchmark
run: |
python3 orchestrator/run_benchmark.py throughput \
--identity-file "${RUNNER_TEMP}/quic-perf" \
--server-host 127.0.0.1 --server-ssh-port 2222 \
--client-host 127.0.0.1 --client-ssh-port 2223 \
--server-address server \
--server-implementation msquic --client-implementation msquic \
--download-bytes 1000000
- name: Run quic-go handshake benchmark
run: |
python3 orchestrator/run_benchmark.py handshake \
--identity-file "${RUNNER_TEMP}/quic-perf" \
--server-host 127.0.0.1 --server-ssh-port 2222 \
--client-host 127.0.0.1 --client-ssh-port 2223 \
--server-address server \
--server-implementation quic-go --client-implementation quic-go \
--duration-seconds 2 --concurrency 4
- name: Run MsQuic handshake benchmark
run: |
python3 orchestrator/run_benchmark.py handshake \
--identity-file "${RUNNER_TEMP}/quic-perf" \
--server-host 127.0.0.1 --server-ssh-port 2222 \
--client-host 127.0.0.1 --client-ssh-port 2223 \
--server-address server \
--server-implementation msquic --client-implementation msquic \
--duration-seconds 2 --concurrency 4