Skip to content

Performance Testing [schedule][main] - 35.163.142.7/500ms delay #662

Performance Testing [schedule][main] - 35.163.142.7/500ms delay

Performance Testing [schedule][main] - 35.163.142.7/500ms delay #662

Workflow file for this run

name: PerformanceTests
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
AWS_INSTANCE_ID: ${{ secrets.AWS_INSTANCE_ID }}
on:
schedule:
- cron: '1 1 * * *'
workflow_dispatch:
inputs:
server_public_address:
description: 'public address for the server'
type: string
default: 35.163.142.7
required: true
server_private_address:
description: 'private address for the server'
type: string
default: 172.31.38.198
required: true
client_listen_address:
description: 'address for the client to listen on'
type: string
default: 172.31.21.30
required: true
connection_delay_device:
description: 'serverside network device to set delay on'
type: string
default: eth0
required: true
backend_trace_active:
description: 'enable backend debug tracing'
type: boolean
default: false
required: true
keep_aws_running:
description: 'keeps aws vm running for subsequent runs'
type: boolean
default: false
required: true
run-name: Performance Testing [${{ github.event_name }}][${{ github.head_ref || github.ref_name }}] - ${{ inputs.server_public_address || '35.163.142.7' }}/${{ inputs.connect_delay_ms || '500' }}ms delay
jobs:
launch-aws-vm:
runs-on: ubuntu-latest
steps:
- name: Install AWS cli
id: install-aws-cli
uses: unfor19/install-aws-cli-action@master
with:
version: "2"
- run: |
aws --version
# run the instance
aws ec2 start-instances --instance-ids ${{ secrets.AWS_INSTANCE_ID }}
shell: bash
- run: |
# assure that the instance is stopped on error
aws ec2 stop-instances --instance-ids ${{ secrets.AWS_INSTANCE_ID }}
shell: bash
if: ${{ failure() && ! inputs.keep_aws_running }}
stop-aws-vm:
runs-on: ubuntu-latest
needs: performance-run
if: ${{ always() && ! inputs.keep_aws_running }}
steps:
- name: Install AWS cli
id: install-aws-cli
uses: unfor19/install-aws-cli-action@master
with:
version: "2"
- run: |
# assure that the instance is stopped even on error
aws ec2 stop-instances --instance-ids ${{ secrets.AWS_INSTANCE_ID }}
shell: bash
performance-build:
needs: launch-aws-vm
uses: './.github/workflows/build-performance.yml'
secrets: inherit
performance-run:
needs: performance-build
strategy:
max-parallel: 1
matrix:
backend: [ 'quic-go', 'quicly-go' ]
cca: [ 'reno', 'cubic' ]
slowstart: [ 'basic', 'search' ]
connection_delay_ms: [ 0, 500 ]
exclude:
- backend: 'quic-go'
slowstart: 'search'
- backend: 'quic-go'
cca: 'cubic'
uses: './.github/workflows/run-performance.yml'
with:
server_public_address: ${{ inputs.server_public_address }}
server_private_address: ${{ inputs.server_private_address }}
client_listen_address: ${{ inputs.client_listen_address }}
connection_delay_device: ${{ inputs.connection_delay_device }}
connection_delay_ms: ${{ matrix.connection_delay_ms }}
backend_trace_active: ${{ inputs.backend_trace_active }}
backend: ${{ matrix.backend }}
cca: ${{ matrix.cca }}
slowstart: ${{ matrix.slowstart }}
secrets: inherit
performance-results:
needs: performance-run
runs-on: ubuntu-latest
if: ${{ always() }}
env:
ARTIFACT_KEY: results-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
steps:
- name: Generate results artifact
uses: actions/upload-artifact/merge@v4
if: always()
env:
GITHUB_TOKEN:
${{ github.token }}
with:
name: ${{ env.ARTIFACT_KEY }}
separate-directories: true
delete-merged: true