Skip to content

Nightly Performance Tests #83

Nightly Performance Tests

Nightly Performance Tests #83

name: Nightly Performance Tests
on:
schedule:
- cron: "0 0 * * *"
defaults:
run:
working-directory: build/devenv
jobs:
nightly-performance:
permissions:
id-token: write
contents: read
runs-on: runs-on=${{ github.run_id }}-${{ strategy.job-index }}/family=c6i/cpu=32+48/ram=64+96/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
strategy:
matrix:
test: [
{ name: "TestE2ELoad/clean", config: "env.toml" },
{ name: "TestE2ELoad/rpc_latency", config: "env.toml" },
{ name: "TestE2ELoad/gas", config: "env.toml" },
{ name: "TestE2ELoad/reorgs", config: "env.toml,env-geth.toml" },
{ name: "TestE2ELoad/services_chaos", config: "env.toml" },
]
fail-fast: false
steps:
- name: Enable S3 Cache for Self-Hosted Runners
# these env vars are set (and exposed) when it is a self-hosted runner with extras=s3-cache
if: ${{ env.RUNS_ON_INSTANCE_ID != '' && env.ACTIONS_CACHE_URL != '' }}
uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
- name: Checkout code
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Install Just
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3
with:
just-version: '1.40.0'
- name: Authenticate to AWS ECR
uses: ./.github/actions/aws-ecr-auth
with:
role-to-assume: ${{ secrets.CCV_IAM_ROLE }}
aws-region: us-east-1
registry-type: public
- name: Set up Go
uses: actions/setup-go@v6 # v6
with:
cache: true
go-version-file: build/devenv/go.mod
cache-dependency-path: |
build/devenv/go.sum
- name: Download Go dependencies
run: |
go mod download
- name: Build Docker Images
run: just build-docker-dev-ci
env:
DOCKER_BUILDKIT: 1
- name: Run Observability Stack
run: |
cd cmd/ccv && go install . && cd -
ccv obs u -f
- name: Run CCV environment with config
run: |
ccv u ${{ matrix.test.config }}
- name: Run perf test
working-directory: build/devenv/tests/e2e
env:
LOKI_URL: http://localhost:3030/loki/api/v1/push
run: |
go test -v -run ${{ matrix.test.name }} -timeout 1h