Skip to content

Update chainlink-solana dependency. #1860

Update chainlink-solana dependency.

Update chainlink-solana dependency. #1860

name: On Demand OCR Soak Test

Check failure on line 1 in .github/workflows/on-demand-ocr-soak-test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/on-demand-ocr-soak-test.yml

Invalid workflow file

(Line: 126, Col: 9): Job 'run-e2e-tests-workflow' depends on unknown job 'wait-for-workflows'.
on:
workflow_dispatch:
inputs:
testToRun:
description: Test to run (from .github/e2e-tests.yml)
required: true
default: soak/ocr_test.go:TestOCRv2Soak
type: choice
options:
- soak/ocr_test.go:TestOCRv1Soak
- soak/ocr_test.go:TestOCRv2Soak
- soak/ocr_test.go:TestForwarderOCRv1Soak
- soak/ocr_test.go:TestForwarderOCRv2Soak
- soak/ocr_test.go:TestOCRSoak_GethReorgBelowFinality_FinalityTagDisabled
- soak/ocr_test.go:TestOCRSoak_GethReorgBelowFinality_FinalityTagEnabled
- soak/ocr_test.go:TestOCRSoak_GasSpike
- soak/ocr_test.go:TestOCRSoak_ChangeBlockGasLimit
- soak/ocr_test.go:TestOCRSoak_RPCDownForAllCLNodes
- soak/ocr_test.go:TestOCRSoak_RPCDownForHalfCLNodes
chainlink_version:
description: Version to test (e.g. "v2.25.0-beta.0", "develop", etc.)
required: true
default: develop
type: string
test_config_override_path:
description: Path to the override test config TOML (defaults to OCR2 on Eth Sepolia, 12h soak)
required: false
default: 'integration-tests/testconfig/ocr2/overrides/ethereum_sepolia_12h.toml'
type: string
test_secrets_override_key:
description: Test secrets (defaults to EOA - 0x663d14907663dC0D2bC3A3b9Ad61c10fa9B0fc08 on Eth Sepolia)
required: false
type: string
team:
description: Team (e.g. BIX, CCIP, CRE, etc.)
required: true
type: string
slackMemberID:
description: Slack Member ID (to tag when results published in `#test-run-notifications` Slack channel).
required: true
default: U01A2B2C3D4
jobs:
# Based on the `inputs.chainlink_version` define whether to:
# - use a private or public ECR registry
# - skip image build if public ECR registry is used
# - resolve the docker version
# - set test secrets
setup-test-parameters:
name: Setup Test Parameters
runs-on: ubuntu-latest
outputs:
skip_image_build: ${{ steps.should-build-image.outputs.skip_image_build }}
chainlink_image_version: ${{ steps.resolve-version.outputs.chainlink_image_version }}
test_secrets_override_key: ${{ steps.set-test-secrets.outputs.test_secrets_override_key }}
env:
VERSION: ${{ inputs.chainlink_version || github.ref_name }}
SECRETS_OVERRIDE_KEY: ${{ inputs.test_secrets_override_key }}
PUBLIC_ECR_DEFAULT_TEST_SECRETS: aws:testsecrets/DEFAULT_TEST_SECRETS
PRIVATE_ECR_DEFAULT_TEST_SECRETS: aws:testsecrets/PRIVATE_DEFAULT_TEST_SECRETS
steps:
- name: Define if Image Build is Required Based on Version
id: should-build-image
shell: bash
run: |
# Check if VERSION matches a public registry pattern (e.g., v2.26.0-beta.0)
if [[ "$VERSION" =~ ^v[0-9]+\..*$ ]]; then
echo "skip_image_build=true" | tee -a "$GITHUB_OUTPUT"
echo "Version '$VERSION' detected. Using PUBLIC ECR registry - no image build required."
else
echo "skip_image_build=false" | tee -a "$GITHUB_OUTPUT"
echo "Detected version: '$VERSION'. Using PRIVATE ECR registry - image build is required."
fi
- name: Check if '${{ env.VERSION }}' is a 'Core' Release Version
id: is-core
shell: bash
run: |
# Examples: `v2.23.1-beta.0`, `v2.23.1-rc.1`, `v2.23.1`
if [[ "$VERSION" =~ v[0-9]+\.[0-9]+\.[0-9]+-beta.*$ || "$VERSION" =~ v[0-9]+\.[0-9]+\.[0-9]+-rc.*$ || "$VERSION" =~ v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "is-core=true" | tee -a "$GITHUB_OUTPUT"
echo "Version '$VERSION' is a 'core' release version."
else
echo "is-core=false" | tee -a "$GITHUB_OUTPUT"
echo "Version '$VERSION' is NOT a 'core' release version."
fi
- name: Resolve '${{ env.VERSION }}' version for Docker
id: resolve-version
shell: bash
run: |
if [[ "${{ steps.is-core.outputs.is-core }}" == "true" ]]; then
# strip the `v` prefix from the version
resolved_version="${VERSION#v}"
echo "Resolved version for 'core' image: '$resolved_version' (stripped 'v' prefix)."
echo "chainlink_image_version=$resolved_version" | tee -a "$GITHUB_OUTPUT"
else
resolved_version="$VERSION"
echo "Using image version as-is: '$resolved_version'."
echo "chainlink_image_version=$resolved_version" | tee -a "$GITHUB_OUTPUT"
fi
- name: Set Test Secrets (default or provided)
id: set-test-secrets
shell: bash
run: |
if [[ -n "$SECRETS_OVERRIDE_KEY" ]]; then
echo "Using explicitly provided test secrets."
echo "test_secrets_override_key=$SECRETS_OVERRIDE_KEY" | tee -a "$GITHUB_OUTPUT"
exit 0
fi
echo "No 'test_secrets_override_key' provided. Selecting default based on image registry..."
if [[ "${{ steps.should-build-image.outputs.skip_image_build }}" == "true" ]]; then
echo "test_secrets_override_key=$PUBLIC_ECR_DEFAULT_TEST_SECRETS" | tee -a "$GITHUB_OUTPUT"
echo "Using default secrets for PUBLIC ECR registry."
else
echo "test_secrets_override_key=$PRIVATE_ECR_DEFAULT_TEST_SECRETS" | tee -a "$GITHUB_OUTPUT"
echo "Using default secrets for PRIVATE ECR registry."
fi
run-e2e-tests-workflow:
name: Run E2E Tests
needs:
- wait-for-workflows
- setup-test-parameters
# Run this job only if:
# - optional wait-for-workflows did not fail (published release image might not be required),
# - and the other dependencies were successful.
if: >-
always() &&
needs.wait-for-workflows.result != 'failure' &&
needs.setup-test-parameters.result == 'success'
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@9c82f8c4d2599c4c7d4e5045bcc0a28f0bf34272
with:
chainlink_version: ${{ needs.setup-test-parameters.outputs.chainlink_image_version }}
test_path: .github/e2e-tests.yml
test_ids: ${{ inputs.testToRun }}
test_secrets_override_key: ${{ needs.setup-test-parameters.outputs.test_secrets_override_key }}
test_config_override_path: ${{ inputs.test_config_override_path }}
# Fallback is used to properly convert a string to boolean
skip_image_build: ${{ needs.setup-test-parameters.outputs.skip_image_build == 'true' && true || false }}
SLACK_USER: ${{ inputs.slackMemberID }}
team: ${{ inputs.team }}
secrets:
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }}
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
PROD_AWS_ACCOUNT_NUMBER: ${{ secrets.AWS_ACCOUNT_ID_PROD }}
QA_PYROSCOPE_INSTANCE: ${{ secrets.QA_PYROSCOPE_INSTANCE }}
QA_PYROSCOPE_KEY: ${{ secrets.QA_PYROSCOPE_KEY }}
GRAFANA_INTERNAL_TENANT_ID: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }}
GRAFANA_INTERNAL_BASIC_AUTH: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }}
GRAFANA_INTERNAL_HOST: ${{ secrets.GRAFANA_INTERNAL_HOST }}
GRAFANA_INTERNAL_URL_SHORTENER_TOKEN: ${{ secrets.GRAFANA_INTERNAL_URL_SHORTENER_TOKEN }}
LOKI_TENANT_ID: ${{ secrets.LOKI_TENANT_ID }}
LOKI_URL: ${{ secrets.LOKI_URL }}
LOKI_BASIC_AUTH: ${{ secrets.LOKI_BASIC_AUTH }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AWS_REGION: ${{ secrets.QA_AWS_REGION }}
AWS_OIDC_IAM_ROLE_VALIDATION_PROD_ARN: ${{ secrets.AWS_OIDC_IAM_ROLE_VALIDATION_PROD_ARN }}
AWS_API_GW_HOST_GRAFANA: ${{ secrets.AWS_API_GW_HOST_GRAFANA }}
TEST_SECRETS_OVERRIDE_BASE64: ${{ secrets[needs.setup-test-parameters.outputs.test_secrets_override_key] }}
SLACK_API_KEY: ${{ secrets.QA_SLACK_API_KEY }}
SLACK_CHANNEL: ${{ secrets.QA_SLACK_CHANNEL }}
MAIN_DNS_ZONE_PUBLIC_SDLC: ${{ secrets.MAIN_DNS_ZONE_PUBLIC_SDLC }}
AWS_K8S_CLUSTER_NAME_SDLC: ${{ secrets.AWS_K8S_CLUSTER_NAME_SDLC }}
OPTIONAL_GATI_AWS_ROLE_ARN: ${{ secrets.AWS_OIDC_GLOBAL_READ_ONLY_TOKEN_ISSUER_ROLE_ARN }}
OPTIONAL_GATI_LAMBDA_URL: ${{ secrets.AWS_INFRA_RELENG_TOKEN_ISSUER_LAMBDA_URL }}