Performance Testing [schedule][main] - 35.163.142.7/500ms delay #666
This file contains 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: 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 |