Infrastructure for running and publishing quic-go performance benchmarks.
The setup keeps runs repeatable by building AWS, GCP, and Azure runner images up front with quic-go/perf and MsQuic installed. Each benchmark then creates short-lived server and client nodes from those images, runs every quic-go and MsQuic client/server pairing, and destroys the nodes afterward.
.github/workflows/packer.ymlbuilds amd64 and arm64 runner images in parallel on AWS, GCP and Azure..github/workflows/benchmark.ymlcreates temporary server and client nodes and runs the implementation matrix..github/workflows/cleanup.ymlretains the newest image for each architecture and deletes older images and abandoned benchmark resources.
To test image builds from a pull request, open the PR normally, then go to GitHub Actions, select the Build images workflow, click Run workflow, and choose the PR branch. The AWS, GCP, and Azure build jobs then wait for approval from the cloud-test GitHub Environment before getting cloud credentials.
When testing changes to the workflow itself before they are merged to master, trigger the workflow from the CLI instead:
gh workflow run packer.yml --ref <branch-name>