libp2p-test-plans/.github/workflows/perf.yml
Workflow config file is invalid. Please check your config file: EOF

105 lines
4.3 KiB
YAML

# name: libp2p perf test
# # How to configure a repository for running this workflow:
# # 1. Configure auth for the AWS provider as per https://registry.terraform.io/providers/hashicorp/aws/latest/docs#authentication-and-configuration
# # 2. Run 'terraform init' and 'terraform apply' in 'perf/terraform/configs/remote' to create the resources needed for this workflow
# # 3. Go to https://console.aws.amazon.com/iamv2/home?#/users/details/perf?section=security_credentials
# # 4. Click 'Create access key' to get the access key ID and secret access key
# # 5. Go to https://github.com/libp2p/test-plans/settings/secrets/actions
# # 6. Click 'New repository secret', set the name to 'PERF_AWS_SECRET_ACCESS_KEY', and paste the secret access key from step 5
# # 7. Go to https://github.com/libp2p/test-plans/settings/variables/actions
# # 8. Click 'New repository variable', set the name to 'PERF_AWS_ACCESS_KEY_ID', and paste the access key ID from step 5
# on:
# workflow_dispatch:
# inputs:
# push:
# description: 'Push the benchmark results to the repository'
# required: false
# default: 'true'
# jobs:
# perf:
# name: Perf
# runs-on: ubuntu-latest
# timeout-minutes: 240
# defaults:
# run:
# shell: bash
# working-directory: perf
# env:
# AWS_ACCESS_KEY_ID: ${{ vars.PERF_AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.PERF_AWS_SECRET_ACCESS_KEY }}
# TF_IN_AUTOMATION: 1
# TF_INPUT: 0
# steps:
# - name: Checkout test-plans
# uses: actions/checkout@v3
# with:
# repository: ${{ github.repository }}
# ref: ${{ github.ref }}
# - id: ssh
# name: Generate SSH key
# run: |
# make ssh-keygen
# echo "key<<EOF" >> $GITHUB_OUTPUT
# while read -r line; do
# echo "::add-mask::$line"
# echo "$line" >> $GITHUB_OUTPUT
# done < terraform/modules/short_lived/files/perf
# echo "EOF" >> $GITHUB_OUTPUT
# - name: Configure SSH
# uses: webfactory/ssh-agent@d4b9b8ff72958532804b70bbe600ad43b36d5f2e # v0.8.0
# with:
# ssh-private-key: ${{ steps.ssh.outputs.key }}
# - name: Configure git
# run: |
# git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com>"
# git config --global user.name "${GITHUB_ACTOR}"
# - name: Configure terraform
# uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2.0.3
# - name: Init terraform
# id: init
# run: terraform init
# working-directory: perf/terraform/configs/local
# - name: Apply terraform
# run: terraform apply -auto-approve
# working-directory: perf/terraform/configs/local
# - id: server
# name: Retrieve server's IP
# run: terraform output -raw server_ip
# working-directory: perf/terraform/configs/local
# - id: client
# name: Retrieve client's IP
# run: terraform output -raw client_ip
# working-directory: perf/terraform/configs/local
# - name: Download dependencies
# run: npm ci
# working-directory: perf/runner
# - name: Run tests
# env:
# SERVER_IP: ${{ steps.server.outputs.stdout }}
# CLIENT_IP: ${{ steps.client.outputs.stdout }}
# run: npm run start -- --client-public-ip $CLIENT_IP --server-public-ip $SERVER_IP
# working-directory: perf/runner
# - name: Push
# if: github.event.inputs.push == 'true'
# env:
# GITHUB_TOKEN: ${{ github.token }}
# run: |
# git add benchmark-results.json
# git commit -m "perf: update benchmark results"
# git push
# gh pr comment --body "See new metrics at https://observablehq.com/@libp2p-workspace/performance-dashboard?branch=$(git rev-parse HEAD)" || true
# working-directory: perf/runner
# - name: Archive
# if: github.event.intputs.push == 'false'
# uses: actions/upload-artifact@v2
# with:
# name: benchmark-results
# path: perf/runner/benchmark-results.json
# - name: Destroy terraform
# if: always() && steps.init.outputs.exitcode == 0
# run: terraform destroy -auto-approve
# working-directory: perf/terraform/configs/local