On Demand OCR Soak Test #692
Workflow file for this run
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: On Demand OCR Soak Test | |
on: | |
workflow_dispatch: | |
inputs: | |
testToRun: | |
description: Select a test to run | |
required: true | |
default: TestOCRSoak | |
type: choice | |
options: | |
- TestOCRv1Soak | |
- TestOCRv2Soak | |
- TestForwarderOCRv1Soak | |
- TestForwarderOCRv2Soak | |
- TestOCRSoak_GethReorgBelowFinality_FinalityTagDisabled | |
- TestOCRSoak_GethReorgBelowFinality_FinalityTagEnabled | |
- TestOCRSoak_GasSpike | |
- TestOCRSoak_ChangeBlockGasLimit | |
- TestOCRSoak_RPCDownForAllCLNodes | |
- TestOCRSoak_RPCDownForHalfCLNodes | |
test_config_override_path: | |
description: Path to a test config file used to override the default test config | |
required: false | |
type: string | |
slackMemberID: | |
description: Slack Member ID (Not your @) | |
required: true | |
default: U01A2B2C3D4 | |
type: string | |
test_secrets_override_key: | |
description: 'Key to run tests with custom test secrets' | |
required: false | |
type: string | |
jobs: | |
ocr_soak_test: | |
name: OCR Soak Test | |
environment: integration | |
runs-on: ubuntu-latest | |
permissions: | |
checks: write | |
pull-requests: write | |
id-token: write | |
contents: read | |
env: | |
CHAINLINK_ENV_USER: ${{ github.actor }} | |
SLACK_API_KEY: ${{ secrets.QA_SLACK_API_KEY }} | |
SLACK_CHANNEL: ${{ secrets.QA_SLACK_CHANNEL }} | |
TEST_LOG_LEVEL: debug | |
REF_NAME: ${{ github.head_ref || github.ref_name }} | |
ENV_JOB_IMAGE_BASE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink-tests | |
steps: | |
- name: Collect Metrics | |
id: collect-gha-metrics | |
uses: smartcontractkit/push-gha-metrics-action@d9da21a2747016b3e13de58c7d4115a3d5c97935 # v3.0.1 | |
with: | |
id: on-demand-ocr-soak-test | |
org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }} | |
basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }} | |
hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }} | |
this-job-name: ${{ inputs.network }} OCR Soak Test | |
continue-on-error: true | |
- name: Checkout the repo | |
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
with: | |
ref: ${{ env.REF_NAME }} | |
- name: Get Slack config | |
run: | | |
SLACK_USER=$(jq -r '.inputs.slackMemberID' $GITHUB_EVENT_PATH) | |
echo ::add-mask::$SLACK_USER | |
echo SLACK_USER=$SLACK_USER >> $GITHUB_ENV | |
- name: Setup Push Tag | |
shell: bash | |
run: | | |
echo "### chainlink-tests image tag for this test run :ship:" >>$GITHUB_STEP_SUMMARY | |
echo "\`${GITHUB_SHA}\`" >>$GITHUB_STEP_SUMMARY | |
- name: Show test config override path in summary | |
if: ${{ inputs.test_config_override_path }} | |
run: | | |
echo "### Test config override path" >> $GITHUB_STEP_SUMMARY | |
echo "[${{ inputs.test_config_override_path }}]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/blob/${{ github.sha }}/${{ inputs.test_config_override_path }})" >> $GITHUB_STEP_SUMMARY | |
- name: Build Image | |
id: build_test_image | |
uses: ./.github/actions/build-test-image | |
with: | |
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} | |
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} | |
QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }} | |
- name: Run Tests | |
uses: smartcontractkit/chainlink-github-actions/chainlink-testing-framework/run-tests@94cb11f4bd545607a2f221c6685052b3abee723d # v2.3.32 | |
env: | |
DETACH_RUNNER: true | |
TEST_SUITE: soak | |
TEST_ARGS: -test.timeout 900h -test.memprofile memprofile.out -test.cpuprofile profile.out | |
ENV_JOB_IMAGE: ${{ steps.build_test_image.outputs.test_image }} | |
# We can comment these out when we have a stable soak test and aren't worried about resource consumption | |
TEST_UPLOAD_CPU_PROFILE: true | |
TEST_UPLOAD_MEM_PROFILE: true | |
E2E_TEST_CHAINLINK_IMAGE: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com/chainlink | |
E2E_TEST_LOKI_TENANT_ID: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }} | |
E2E_TEST_LOKI_ENDPOINT: https://${{ secrets.GRAFANA_INTERNAL_HOST }}/loki/api/v1/push | |
E2E_TEST_LOKI_BASIC_AUTH: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }} | |
E2E_TEST_GRAFANA_BASE_URL: "http://localhost:8080/primary" | |
E2E_TEST_GRAFANA_DASHBOARD_URL: "/d/ddf75041-1e39-42af-aa46-361fe4c36e9e/ci-e2e-tests-logs" | |
E2E_TEST_GRAFANA_BEARER_TOKEN: ${{ secrets.GRAFANA_INTERNAL_URL_SHORTENER_TOKEN }} | |
with: | |
test_command_to_run: cd ./integration-tests && go test -v -count=1 -run ^${{ github.event.inputs.testToRun }}$ ./soak | |
test_download_vendor_packages_command: make gomod | |
test_secrets_override_base64: ${{ secrets[inputs.test_secrets_override_key] }} | |
test_config_override_path: ${{ inputs.test_config_override_path }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
should_cleanup: false | |
go_mod_path: ./integration-tests/go.mod | |
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} | |
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} | |
QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }} |