Skip to content

Commit 129c800

Browse files
committed
Merge branch 'develop' into dx-3553-cre-upgrade-pipeline
2 parents 40001c8 + e1debcf commit 129c800

136 files changed

Lines changed: 4989 additions & 2793 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/bright-pens-glow.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/fresh-cakes-hit.md

Lines changed: 0 additions & 5 deletions
This file was deleted.
File renamed without changes.

.changeset/sour-sharks-aid.md

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"chainlink": patch
3+
---
4+
5+
#changed
6+
7+
Move Vault node-side request authorization into the gateway handler and remove duplicated authorization from the Vault capability.

.github/E2E_TESTS_ON_GITHUB_CI.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ These are dispatched parametrized workflows, that may be triggered manually for
5555
- [On-Demand Automation Tests](https://github.com/smartcontractkit/chainlink/actions/workflows/automation-ondemand-tests.yml)
5656
- [CCIP Chaos Tests](https://github.com/smartcontractkit/chainlink/actions/workflows/ccip-chaos-tests.yml)
5757
- [CCIP Load Tests](https://github.com/smartcontractkit/chainlink/actions/workflows/ccip-load-tests.yml)
58-
- [VRFv2Plus Smoke Tests](https://github.com/smartcontractkit/chainlink/actions/workflows/on-demand-vrfv2plus-smoke-tests.yml)
59-
- [VRFv2Plus Performance Tests](https://github.com/smartcontractkit/chainlink/actions/workflows/on-demand-vrfv2plus-performance-test.yml)
6058

6159
### Test workflows setup in CI
6260

.github/e2e-tests.yml

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -6,90 +6,6 @@
66
# - The triggers (e.g., Run PR E2E Tests, Nightly E2E Tests) that should trigger these tests.
77
#
88
runner-test-matrix:
9-
# START: OCR tests
10-
11-
# All the OCR smoke/soak/chaostests were moved to https://github.com/smartcontractkit/chainlink/blob/develop/.github/workflows/devenv-ocr2-soak.yml
12-
# and https://github.com/smartcontractkit/chainlink/blob/develop/.github/workflows/devenv-ocr2-chaos.yml
13-
14-
# START: VRF tests
15-
16-
- id: smoke/vrfv2_test.go:TestVRFv2Basic
17-
path: integration-tests/smoke/vrfv2_test.go
18-
runs_on: ubuntu22.04-8cores-32GB
19-
test_env_type: docker
20-
test_cmd: |
21-
cd smoke && \
22-
gotestsum \
23-
--junitfile=/tmp/junit.xml \
24-
--jsonfile=/tmp/gotest.log \
25-
--format=github-actions \
26-
-- -v -run "TestVRFv2Basic" -parallel=1 -timeout 30m -count=1
27-
test_secrets_required: true
28-
triggers:
29-
- On Demand VRFV2 Smoke Test (Ethereum clients)
30-
test_go_project_path: integration-tests
31-
32-
- id: smoke/vrf_test.go:*
33-
path: integration-tests/smoke/vrf_test.go
34-
test_env_type: docker
35-
runs_on: ubuntu-latest
36-
triggers:
37-
- PR E2E Core Tests
38-
- Merge Queue E2E Core Tests
39-
- Nightly E2E Tests
40-
- Push E2E Core Tests
41-
- Workflow Dispatch E2E Core Tests
42-
test_cmd: |
43-
gotestsum \
44-
--junitfile=/tmp/junit.xml \
45-
--jsonfile=/tmp/gotest.log \
46-
--format=github-actions \
47-
-- -v -run "TestVRFBasic|TestVRFJobReplacement" -timeout 30m -count=1 -parallel=2 github.com/smartcontractkit/chainlink/integration-tests/smoke
48-
pyroscope_env: ci-smoke-vrf-evm-simulated
49-
test_go_project_path: integration-tests
50-
51-
- id: smoke/vrfv2_test.go:*
52-
path: integration-tests/smoke/vrfv2_test.go
53-
test_env_type: docker
54-
runs_on: ubuntu-latest
55-
triggers:
56-
- PR E2E Core Tests
57-
- Merge Queue E2E Core Tests
58-
- Nightly E2E Tests
59-
- Push E2E Core Tests
60-
- Workflow Dispatch E2E Core Tests
61-
test_cmd: |
62-
gotestsum \
63-
--junitfile=/tmp/junit.xml \
64-
--jsonfile=/tmp/gotest.log \
65-
--format=github-actions \
66-
-- -v -run "^(TestVRFv2Basic|TestVRFV2WithBHS|TestVRFv2NodeReorg|TestVRFV2MultipleSendingKeys|TestVRFOwner|TestVRFV2BatchFulfillmentEnabledDisabled)$" -timeout 30m -count=1 -parallel=6 github.com/smartcontractkit/chainlink/integration-tests/smoke
67-
pyroscope_env: ci-smoke-vrf2-evm-simulated
68-
test_go_project_path: integration-tests
69-
# END: VRF tests
70-
71-
# START: Other tests
72-
73-
- id: smoke/reorg_above_finality_test.go:*
74-
path: integration-tests/smoke/reorg_above_finality_test.go
75-
test_env_type: docker
76-
runs_on: ubuntu-latest
77-
triggers:
78-
- PR E2E Core Tests
79-
- Merge Queue E2E Core Tests
80-
- Nightly E2E Tests
81-
- Push E2E Core Tests
82-
- Workflow Dispatch E2E Core Tests
83-
test_cmd: |
84-
gotestsum \
85-
--junitfile=/tmp/junit.xml \
86-
--jsonfile=/tmp/gotest.log \
87-
--format=github-actions \
88-
-- -v -run "TestRegisteringMultipleJobDistributor" -timeout 30m -count=1 -parallel=2 github.com/smartcontractkit/chainlink/integration-tests/smoke
89-
pyroscope_env: ci-smoke-reorg-above-finality-evm-simulated
90-
test_go_project_path: integration-tests
91-
# END: Other tests
92-
939
# START: CCIPv1.6 tests
9410

9511
- id: smoke/ccip/ccip_reorg_test.go:LessThanFinalityTests

.github/workflows/build-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
permissions:
9797
contents: read
9898
id-token: write
99-
uses: smartcontractkit/.github/.github/workflows/reusable-docker-build-publish.yml@a89ebdd9d9cabda77c5f7ea7523af5707afb7786 # 2025-08-25
99+
uses: smartcontractkit/.github/.github/workflows/reusable-docker-build-publish.yml@f4ff50d0f4713ed7b247dbd8a58316484907f958 # 2026-01-13
100100
with:
101101
aws-ecr-name: chainlink
102102
aws-region-ecr: us-east-1
@@ -131,7 +131,7 @@ jobs:
131131
permissions:
132132
contents: read
133133
id-token: write
134-
uses: smartcontractkit/.github/.github/workflows/reusable-docker-build-publish.yml@a89ebdd9d9cabda77c5f7ea7523af5707afb7786 # 2025-08-25
134+
uses: smartcontractkit/.github/.github/workflows/reusable-docker-build-publish.yml@f4ff50d0f4713ed7b247dbd8a58316484907f958 # 2026-01-13
135135
with:
136136
aws-ecr-name: ccip
137137
aws-region-ecr: us-east-1

.github/workflows/ci-core.yml

Lines changed: 17 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -112,25 +112,25 @@ jobs:
112112
113113
golangci:
114114
name: GolangCI Lint
115-
needs: [filter, run-frequency, runner-config]
115+
needs: [filter, run-frequency ]
116116
# We don't directly merge dependabot PRs to not waste the resources.
117-
if: ${{ (github.event_name == 'pull_request' || github.event_name == 'schedule') && github.actor != 'dependabot[bot]' }}
117+
if: ${{ needs.filter.outputs.affected-modules != '[]' && github.event_name != 'merge_group' && github.actor != 'dependabot[bot]' }}
118118
permissions:
119119
# To annotate code in the PR.
120120
checks: write
121121
contents: read
122122
# For golangci-lint-action's `only-new-issues` option.
123123
pull-requests: read
124-
runs-on: ${{ needs.runner-config.outputs.lint-runner }}
124+
runs-on: runs-on=${{ github.run_id }}-${{ strategy.job-index }}/cpu=16/ram=32/family=c6gd/spot=false/image=ubuntu24-full-arm64/extras=s3-cache
125125
strategy:
126126
fail-fast: false
127127
matrix:
128128
modules: ${{ fromJson(needs.filter.outputs.affected-modules) }}
129129
steps:
130130
- name: Enable S3 Cache for Self-Hosted Runners
131-
# these env vars are set (and exposed) when it is a self-hosted runner with extras=s3-cache
132-
if: ${{ env.RUNS_ON_INSTANCE_ID != '' && env.ACTIONS_CACHE_URL != '' }}
133-
uses: runs-on/action@66d4449b717b5462159659523d1241051ff470b9 # v1
131+
uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
132+
with:
133+
metrics: cpu,network,memory,disk
134134

135135
- name: Checkout
136136
uses: actions/checkout@v4
@@ -206,27 +206,27 @@ jobs:
206206
matrix:
207207
type:
208208
- cmd: go_core_tests
209-
os: ${{ needs.runner-config.outputs.core-tests-runner }}
209+
os: runs-on=${{ github.run_id }}-unit/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
210210
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
211211
trunk-auto-quarantine: "true"
212212

213213
- cmd: go_core_tests_integration
214-
os: ${{ needs.runner-config.outputs.core-tests-integration-runner }}
214+
os: runs-on=${{ github.run_id }}-integ/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
215215
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
216216
trunk-auto-quarantine: "true"
217217
setup-solana: "true"
218218
install-loopps: "true"
219219

220220
- cmd: go_core_fuzz
221-
os: ${{ needs.runner-config.outputs.core-fuzz-tests-runner }}
221+
os: runs-on=${{ github.run_id}}-fuzz/cpu=8/ram=32/family=m6id+m6idn/spot=false/image=ubuntu24-full-x64/extras=s3-cache
222222
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
223223

224224
- cmd: go_core_race_tests
225-
os: ${{ needs.runner-config.outputs.core-race-tests-runner }}
225+
os: runs-on=${{ github.run_id}}-race/cpu=64/ram=128/family=c7i/volume=80gb/spot=false/image=ubuntu24-full-x64/extras=s3-cache
226226
should-run: ${{ needs.filter.outputs.should-run-core-tests }}
227227

228228
- cmd: go_core_ccip_deployment_tests
229-
os: ${{ needs.runner-config.outputs.deployment-tests-runner }}
229+
os: runs-on=${{ github.run_id }}-deployment/cpu=64/ram=128/family=c6i+c7i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
230230
should-run: ${{ needs.filter.outputs.should-run-deployment-tests }}
231231
trunk-auto-quarantine: "true"
232232
go-mod-directory: "deployment/"
@@ -238,18 +238,19 @@ jobs:
238238
name: Core Tests (${{ matrix.type.cmd }}) # Be careful modifying the job name, as it is used to fetch the job URL
239239
# We don't directly merge dependabot PRs, so let's not waste the resources
240240
if: ${{ github.actor != 'dependabot[bot]' }}
241-
needs: [filter, run-frequency, runner-config]
241+
needs: [filter, run-frequency ]
242242
timeout-minutes: 60
243-
runs-on: ${{ matrix.type.os }}
243+
# Use ubuntu-latest for jobs that will be skipped
244+
runs-on: ${{ matrix.type.should-run == 'true' && matrix.type.os || 'ubuntu-latest' }}
244245
permissions:
245246
id-token: write
246247
contents: read
247248
actions: read
248249
steps:
249250
- name: Enable S3 Cache for Self-Hosted Runners
250-
# these env vars are set (and exposed) when it is a self-hosted runner with extras=s3-cache
251-
if: ${{ env.RUNS_ON_INSTANCE_ID != '' && env.ACTIONS_CACHE_URL != '' }}
252-
uses: runs-on/action@66d4449b717b5462159659523d1241051ff470b9 # v1
251+
uses: runs-on/action@742bf56072eb4845a0f94b3394673e4903c90ff0 # v2.1.0
252+
with:
253+
metrics: cpu,network,memory,disk
253254

254255
- name: Checkout the repo
255256
if: ${{ matrix.type.should-run == 'true' }}
@@ -598,116 +599,6 @@ jobs:
598599
echo "one-per-day-frequency=true" | tee -a $GITHUB_OUTPUT
599600
fi
600601
601-
# This chooses which runner labels we pass for the matrix jobs above.
602-
# General Criteria:
603-
# 1. If we are going to 'skip' a test suite, we use the base Github-hosted runner.
604-
# - This is based off `should-run-core-tests`, and `should-run-deployment-tests`
605-
# 2. If we are not skipping, we check if the PR has the "runs-on-opt-out" label.
606-
# - If the PR has the label, we use the larger Github-hosted runners.
607-
# - If the PR does not have the label, we use the self-hosted runners.
608-
runner-config:
609-
name: Runner Config
610-
needs: [filter]
611-
runs-on: ubuntu-latest
612-
env:
613-
# include unique label (core/deployment/etc...) to ensure jobs are not competing for the same runner
614-
SH_TEST_RUNNER: runs-on=${{ github.run_id }}-core/cpu=48/ram=96/family=c6i/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
615-
SH_DEPLOYMENT_TEST_RUNNER: runs-on=${{ github.run_id }}-deployment/cpu=48/ram=96/family=c6id/spot=false/image=ubuntu24-full-x64/extras=s3-cache
616-
SH_FUZZ_RUNNER: runs-on=${{ github.run_id}}-fuzz/cpu=8+16/ram=32+64/family=c6id+m6id+m6idn/spot=false/image=ubuntu24-full-x64/extras=s3-cache
617-
SH_RACE_TEST_RUNNER: runs-on=${{ github.run_id}}-race/cpu=64+128/ram=128+128/family=c7+m7/volume=80gb/spot=false/image=ubuntu24-full-x64/extras=s3-cache
618-
SH_LINT_RUNNER: runs-on=${{ github.run_id }}-lint/cpu=16/ram=32/family=c6gd/spot=false/image=ubuntu24-full-arm64/extras=s3-cache
619-
GH_TEST_RUNNER: ubuntu22.04-32cores-128GB
620-
GH_FUZZ_RUNNER: ubuntu22.04-8cores-32GB
621-
GH_BASE_RUNNER: ubuntu-latest
622-
GH_LINT_RUNNER: ubuntu-24.04-8cores-32GB-ARM
623-
outputs:
624-
# go_core_tests / go_core_race_tests / go_core_tests_integration
625-
core-tests-runner: ${{ steps.core-tests.outputs.core-tests-runner }}
626-
core-tests-integration-runner: ${{ steps.core-tests.outputs.core-tests-integration-runner }}
627-
core-fuzz-tests-runner: ${{ steps.core-tests.outputs.core-fuzz-tests-runner }}
628-
core-race-tests-runner: ${{ steps.core-tests.outputs.core-race-tests-runner }}
629-
# go_core_ccip_deployment_tests
630-
deployment-tests-runner: ${{ steps.deployment-tests.outputs.deployment-tests-runner }}
631-
# linting
632-
lint-runner: ${{ steps.linting.outputs.lint-runner }}
633-
steps:
634-
- name: Get PR Labels
635-
id: pr-labels
636-
uses: smartcontractkit/.github/actions/get-pr-labels@get-pr-labels/v1
637-
with:
638-
check-label: "runs-on-opt-out"
639-
640-
- name: Select runners for deployment tests
641-
id: deployment-tests
642-
shell: bash
643-
env:
644-
OPT_OUT: ${{ steps.pr-labels.outputs.check-label-found || 'false' }}
645-
SHOULD_RUN_DEPLOYMENT_TESTS: ${{ needs.filter.outputs.should-run-deployment-tests }}
646-
run: |
647-
if [[ "${SHOULD_RUN_DEPLOYMENT_TESTS}" == "false" ]]; then
648-
echo "Deployment tests will be skipped, using base Github-hosted runner."
649-
echo "deployment-tests-runner=${GH_BASE_RUNNER}" | tee -a $GITHUB_OUTPUT
650-
exit 0
651-
fi
652-
653-
if [[ "$OPT_OUT" == "true" ]]; then
654-
echo "Opt-out is true for current run. Using gh-hosted runner for deployment tests."
655-
echo "deployment-tests-runner=${GH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
656-
exit 0
657-
fi
658-
659-
echo "Opt-out is false for current run. Using self-hosted runner for deployment tests."
660-
echo "deployment-tests-runner=${SH_DEPLOYMENT_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
661-
662-
- name: Select runners for core tests
663-
id: core-tests
664-
shell: bash
665-
env:
666-
OPT_OUT: ${{ steps.pr-labels.outputs.check-label-found || 'false' }}
667-
SHOULD_RUN_CORE_TESTS: ${{ needs.filter.outputs.should-run-core-tests }}
668-
run: |
669-
if [[ "${SHOULD_RUN_CORE_TESTS}" == "false" ]]; then
670-
echo "Core tests will be skipped, using base Github-hosted runner."
671-
672-
echo "core-tests-runner=${GH_BASE_RUNNER}" | tee -a $GITHUB_OUTPUT
673-
echo "core-tests-integration-runner=${GH_BASE_RUNNER}" | tee -a $GITHUB_OUTPUT
674-
echo "core-fuzz-tests-runner=${GH_BASE_RUNNER}" | tee -a $GITHUB_OUTPUT
675-
echo "core-race-tests-runner=${GH_BASE_RUNNER}" | tee -a $GITHUB_OUTPUT
676-
exit 0
677-
fi
678-
679-
if [[ "$OPT_OUT" == "true" ]]; then
680-
echo "Opt-out is true for current run. Using gh-hosted runner for core tests."
681-
682-
echo "core-tests-runner=${GH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
683-
echo "core-tests-integration-runner=${GH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
684-
echo "core-fuzz-tests-runner=${GH_FUZZ_RUNNER}" | tee -a $GITHUB_OUTPUT
685-
echo "core-race-tests-runner=${GH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
686-
exit 0
687-
fi
688-
689-
echo "Opt-out is false for current run. Using self-hosted runner for core tests."
690-
691-
echo "core-tests-runner=${SH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
692-
echo "core-tests-integration-runner=${SH_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
693-
echo "core-fuzz-tests-runner=${SH_FUZZ_RUNNER}" | tee -a $GITHUB_OUTPUT
694-
echo "core-race-tests-runner=${SH_RACE_TEST_RUNNER}" | tee -a $GITHUB_OUTPUT
695-
696-
- name: Select runners for linting
697-
id: linting
698-
shell: bash
699-
env:
700-
OPT_OUT: ${{ steps.pr-labels.outputs.check-label-found || 'false' }}
701-
run: |
702-
if [[ "$OPT_OUT" == "true" ]]; then
703-
echo "Opt-out is true for current run. Using gh-hosted runner for linting."
704-
echo "lint-runner=${GH_LINT_RUNNER}" | tee -a $GITHUB_OUTPUT
705-
exit 0
706-
fi
707-
708-
echo "Opt-out is false for current run. Using self-hosted runner for linting."
709-
echo "lint-runner=${SH_LINT_RUNNER}" | tee -a $GITHUB_OUTPUT
710-
711602
misc:
712603
# Catchall job for miscellaneous steps.
713604
name: Misc

0 commit comments

Comments
 (0)