105 lines
4.3 KiB
YAML
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
|