add support for the handshakes per second benchmark test #79
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |