Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ccip-chaos-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ concurrency:
jobs:
run-e2e-tests-workflow:
name: Run E2E Tests
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@1b27374964a8d7dfea94a91c4b1eeae84fea66d6
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@fed09778ce127da5d37f902d8bee01387856550a
with:
test_path: .github/e2e-tests.yml
chainlink_version: ${{ github.sha }}
require_chainlink_image_versions_in_qa_ecr: ${{ github.sha }}
test_trigger: E2E CCIP Chaos Tests
test_log_level: debug
slack_notification_after_tests: on_failure
slack_notification_after_tests_channel_id: '#ccip-testing'
slack_notification_after_tests_channel_id: "#ccip-testing"
slack_notification_after_tests_name: CCIP Chaos E2E Tests
team: ${{ inputs.team }}
secrets:
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/ccip-load-tests.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# CCIP rarely runs these anymore. Leaving for now, but can likely be removed in the future.
name: CCIP Load Test
on:
# push:
# paths:
# - '**/*ccip*'
# - '**/*ccip*/**'
# branches:
# - develop
# tags:
# - '*'
# push:
# paths:
# - '**/*ccip*'
# - '**/*ccip*/**'
# branches:
# - develop
# tags:
# - '*'
workflow_dispatch:
inputs:
test_config_override_path:
description: Path to a test config file used to override the default test config
required: false
type: string
test_secrets_override_key:
description: 'Key to run tests with custom test secrets'
description: "Key to run tests with custom test secrets"
required: false
type: string
chainlink_version:
Expand All @@ -37,14 +37,14 @@ concurrency:
jobs:
run-e2e-tests-workflow:
name: Run E2E Tests
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@608298f511acfbcfd1099e5907ba1b1b0dda8b14
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@fed09778ce127da5d37f902d8bee01387856550a
with:
test_path: .github/e2e-tests.yml
test_trigger: E2E CCIP Load Tests
test_config_override_path: ${{ inputs.test_config_override_path }}
chainlink_version: ${{ inputs.chainlink_version || github.sha }}
slack_notification_after_tests: always
slack_notification_after_tests_channel_id: '#ccip-testing'
slack_notification_after_tests_channel_id: "#ccip-testing"
slack_notification_after_tests_name: CCIP E2E Load Tests
test_image_suites: ccip-tests/load
team: ${{ inputs.team || 'ccip' }}
Expand Down
48 changes: 37 additions & 11 deletions .github/workflows/client-compatibility-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,10 @@ jobs:
check-ecr-images-exist:
name: Check images used as test dependencies exist in ECR
if: always() && needs.should-run.outputs.should_run == 'true' && (needs.select-versions.outputs.evm_implementations != '' || github.event.inputs.base64TestList != '')
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
id-token: write
contents: read
Expand Down Expand Up @@ -329,7 +332,10 @@ jobs:
needs.select-versions.outputs.evm_implementations != '' ||
github.event.inputs.base64TestList != ''
)
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
id-token: write
contents: read
Expand All @@ -348,7 +354,7 @@ jobs:
image-tag: ${{ inputs.chainlinkVersion || needs.select-versions.outputs.chainlink_image_version || github.sha }}
dockerfile: core/chainlink.Dockerfile
docker-registry-url: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}.dkr.ecr.${{ secrets.QA_AWS_REGION }}.amazonaws.com
docker-repository-name: 'chainlink'
docker-repository-name: "chainlink"
aws-account-number: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
aws-region: ${{ secrets.QA_AWS_REGION }}
aws-role-arn: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
Expand All @@ -357,11 +363,13 @@ jobs:
# for tagged releases Docker image version is different from the Chainlink version (v2.13.0 -> 2.13.0)
# for all other cases (PRs, commits, etc.) Docker image version is the same as the Chainlink version


get-latest-available-images:
name: Get Latest EVM Implementation's Images
if: always() && needs.should-run.outputs.should_run == 'true' && needs.select-versions.outputs.evm_implementations != '' && github.event.inputs.base64TestList == ''
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
runs-on: ubuntu-latest
needs: [check-ecr-images-exist, should-run, select-versions]
permissions:
Expand Down Expand Up @@ -440,7 +448,10 @@ jobs:
prepare-compatibility-matrix:
name: Prepare Compatibility Matrix
if: always() && needs.should-run.outputs.should_run == 'true' && (needs.select-versions.outputs.evm_implementations != '' || github.event.inputs.base64TestList != '')
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
checks: write
pull-requests: write
Expand Down Expand Up @@ -542,7 +553,10 @@ jobs:
run-client-compatibility-matrix:
name: ${{ matrix.evm_node.product }} compatibility with ${{ matrix.evm_node.docker_image }}
if: always() && needs.should-run.outputs.should_run == 'true' && (needs.build-chainlink.result == 'success' || needs.build-chainlink.result == 'skipped') && needs.prepare-compatibility-matrix.outputs.matrix != ''
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
checks: write
pull-requests: write
Expand Down Expand Up @@ -655,7 +669,10 @@ jobs:
start-slack-thread:
name: Start Slack Thread
if: always() && needs.*.result != 'skipped' && needs.*.result != 'cancelled' && needs.should-run.outputs.should_run == 'true' && (needs.select-versions.outputs.evm_implementations != '' || github.event.inputs.base64TestList != '')
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
outputs:
thread_ts: ${{ steps.slack.outputs.thread_ts }}
permissions:
Expand Down Expand Up @@ -721,7 +738,10 @@ jobs:
parse-test-results:
name: Parse Test Results
if: always() && needs.*.result != 'skipped' && needs.*.result != 'cancelled' && needs.should-run.outputs.should_run == 'true' && (needs.select-versions.outputs.evm_implementations != '' || github.event.inputs.base64TestList != '')
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
checks: write
pull-requests: write
Expand Down Expand Up @@ -761,7 +781,10 @@ jobs:
display-test-results:
name: Aggregated test results
if: always() && needs.*.result != 'skipped' && needs.*.result != 'cancelled' && needs.should-run.outputs.should_run == 'true' && needs.parse-test-results.result == 'success'
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
checks: write
pull-requests: write
Expand Down Expand Up @@ -807,7 +830,10 @@ jobs:
post-test-results-to-slack:
name: Post Test Results for ${{matrix.product}}
if: always() && needs.*.result != 'skipped' && needs.*.result != 'cancelled' && needs.should-run.outputs.should_run == 'true' && needs.parse-test-results.result == 'success'
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
checks: write
pull-requests: write
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/cre-local-env-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ on:
jobs:
changes:
runs-on: runs-on=${{ github.run_id }}/cpu=16/ram=64/family=m6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
permissions:
contents: read
outputs:
Expand Down Expand Up @@ -57,7 +60,10 @@ jobs:

test-cli:
runs-on: runs-on=${{ github.run_id }}/cpu=16/ram=64/family=m6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
timeout-minutes: 15
permissions:
contents: read
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/cre-regression-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,10 @@ jobs:
# we need a `test_id` and `run_attempt` here to stop runner stealing
# see: https://runs-on.com/guides/troubleshoot/#runner-stealing-and-matrix-jobs
runs-on: runs-on=${{ github.run_id }}-${{ matrix.tests.test_id }}-${{ github.run_attempt }}/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
timeout-minutes: 60
env:
ENABLE_AUTO_QUARANTINE: "true"
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/cre-soak-memory-leak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ on:
jobs:
soak:
name: CRE PoR Memory Leak Soak
environment:
name: integration
deployment: false
runs-on: runs-on=${{ github.run_id }}/cpu=8+16/ram=32+64/family=c6id+m6id+m6idn/spot=false/image=ubuntu24-full-x64/extras=s3-cache
environment: "integration"
timeout-minutes: 270 # 4h30m — test timeout is 4h20m
permissions:
contents: read
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/cre-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,10 @@ jobs:
# we need a `test_id` and `run_attempt` here to stop runner stealing
# see: https://runs-on.com/guides/troubleshoot/#runner-stealing-and-matrix-jobs
runs-on: runs-on=${{ github.run_id }}-${{ matrix.tests.test_id }}-${{ github.run_attempt }}/cpu=16/ram=64/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
timeout-minutes: 60
env:
ENABLE_AUTO_QUARANTINE: "true"
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/cre-workflow-don-benchmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ on:
jobs:
workflow-don-benchmark:
runs-on: ubuntu-latest
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
timeout-minutes: 30
permissions:
contents: read
Expand Down
20 changes: 0 additions & 20 deletions .github/workflows/delete-deployments.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .github/workflows/devenv-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,10 @@ jobs:
contents: read
pull-requests: write
runs-on: ubuntu24.04-16cores-64GB # ghv-ignore!
environment: "integration"
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
env:
STRIP_IMAGE_SUFFIX: ${{ inputs.strip-image-suffix }}
PRODUCT: ${{ inputs.product }}
Expand Down
28 changes: 6 additions & 22 deletions .github/workflows/integration-in-memory-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,55 +24,58 @@

jobs:
changes:
environment: integration
environment:
# http://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments-without-deployments
name: integration
deployment: false
name: Check Paths That Require Tests To Run
runs-on: ubuntu-latest
# We don't directly merge dependabot PRs, so let's not waste the resources
if: github.actor != 'dependabot[bot]'
outputs:
github_ci_changes: ${{ steps.ignore-filter.outputs.changes || steps.changes.outputs.github_ci_changes }}
core_changes: ${{ steps.ignore-filter.outputs.changes || steps.changes.outputs.core_changes }}
ccip_changes: ${{ steps.ignore-filter.outputs.changes || steps.changes.outputs.ccip_changes }}
should_use_self_hosted_runner: ${{ steps.label-runs-on-opt-out.outputs.check-label-found == 'false' }}
steps:
- name: Checkout the repo
uses: actions/checkout@v4
with:
persist-credentials: false
repository: smartcontractkit/chainlink
ref: ${{ inputs.cl_ref }}

- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
filters: |
github_ci_changes:
- '.github/workflows/integration-in-memory-tests.yml'
- '.github/integration-in-memory-tests.yml'
core_changes:
- '**/*.go'
- '**/*go.sum'
- '**/*go.mod'
- '**/*Dockerfile'
- 'core/**/migrations/*.sql'
- 'core/**/config/**/*.toml'
- 'integration-tests/**/*.toml'
ccip_changes:
- '**/*ccip*'
- '**/*ccip*/**'

- name: Ignore Filter On Workflow Dispatch
if: ${{ github.event_name == 'workflow_dispatch' }}
id: ignore-filter
run: echo "changes=true" >> $GITHUB_OUTPUT

- name: Get PR Labels (runs-on-opt-out)
id: label-runs-on-opt-out
uses: smartcontractkit/.github/actions/get-pr-labels@get-pr-labels/v1
with:
check-label: "runs-on-opt-out"

run-ccip-integration-in-memory--tests-for-pr:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
name: Run CCIP integration In Memory Tests For PR
permissions:
actions: read
Expand All @@ -82,7 +85,7 @@
contents: read
needs: changes
if: github.event_name == 'pull_request' && ( needs.changes.outputs.ccip_changes == 'true' || needs.changes.outputs.core_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true')
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@78642e9937e8154e65f30461a99a7099c953d35f # 2026-03-12
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@fed09778ce127da5d37f902d8bee01387856550a # 2026-03-12
with:
workflow_name: Run CCIP Integration Tests For PR
chainlink_version: ${{ inputs.cl_ref || github.sha }}
Expand Down Expand Up @@ -114,7 +117,7 @@
contents: read
needs: changes
if: github.event_name == 'merge_group' && ( needs.changes.outputs.ccip_changes == 'true' || needs.changes.outputs.core_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true')
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@78642e9937e8154e65f30461a99a7099c953d35f # 2026-03-12
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@fed09778ce127da5d37f902d8bee01387856550a # 2026-03-12
with:
workflow_name: Run CCIP Integration Tests For Merge Queue
chainlink_version: ${{ inputs.cl_ref || github.sha }}
Expand Down Expand Up @@ -156,22 +159,3 @@
- name: Fail the job if ccip tests in merge queue not successful
if: always() && needs.run-ccip-integration-in-memory-tests-for-merge-queue.result == 'failure'
run: exit 1

cleanup:
name: Clean up integration environment deployments
# If the job was cancelled, it typically means that it was manually stopped, or a new commit was pushed.
# By always running this, it delays the start of the next workflow run due to concurrency rules.
if: always() && !cancelled()
needs:
[
run-ccip-integration-in-memory--tests-for-pr,
run-ccip-integration-in-memory-tests-for-merge-queue,
]
runs-on: ubuntu-latest
steps:
- name: 🧼 Clean up Environment
if: ${{ github.event_name == 'pull_request' }}
uses: smartcontractkit/.github/actions/delete-deployments@delete-deployments/v1
with:
environment: integration
ref: ${{ github.head_ref }} # See https://github.com/github/docs/issues/15319#issuecomment-1476705663
Loading
Loading