-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathintegration-in-memory-tests.yml
More file actions
177 lines (169 loc) · 6.97 KB
/
Copy pathintegration-in-memory-tests.yml
File metadata and controls
177 lines (169 loc) · 6.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#
# Workflow to run in-memory integration tests
# Test matrix is defined in .github/integration-in-memory-tests.yml
#
name: Integration In-Memory Tests
run-name: Integration In-Memory Tests
on:
merge_group:
pull_request:
push:
tags:
- "*"
workflow_dispatch:
inputs:
cl_ref:
description: "The ref to checkout, defaults to the calling branch"
required: false
type: string
# Only run 1 of this workflow at a time per PR
concurrency:
group: ${{ github.ref }}-${{ github.repository }}-${{ github.event_name }}--integration-tests
cancel-in-progress: true
jobs:
changes:
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
permissions:
contents: read
pull-requests: read
issues: read
# We don't directly merge dependabot PRs, so let's not waste the resources
if: github.actor != 'dependabot[bot]'
outputs:
run-tests: ${{ steps.advanced-triggers.outputs.run-tests }}
should_use_self_hosted_runner: ${{ steps.label-runs-on-opt-out.outputs.check-label-found == 'false' }}
steps:
- name: Checkout the repo
uses: actions/checkout@v6
with:
persist-credentials: false
repository: smartcontractkit/chainlink
ref: ${{ inputs.cl_ref }}
- name: Advanced Triggers
uses: smartcontractkit/.github/actions/advanced-triggers@advanced-triggers/v1
id: advanced-triggers
with:
file-sets: |
go-files:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
core-files:
- "core/**"
deployment-files:
- "deployment/**"
workflow-files:
- ".github/workflows/integration-in-memory-tests.yml"
- ".github/integration-in-memory-tests.yml"
- ".github/actions/**/*.y*ml"
core-test-files:
- "testdata/**"
- "core/**/testdata/**"
- "core/**/*_test.go"
deployment-test-files:
- "deployment/**/*_test.go"
- "deployment/**/testdata/**"
to-ignore-files:
- "system-tests/**"
- "devenv/**"
- "core/scripts/cre/**"
triggers: |
run-tests:
exclusion-sets: [ core-test-files, deployment-test-files, to-ignore-files ]
inclusion-sets: [ go-files, core-files, deployment-files, workflow-files ]
paths:
- "integration-tests/**"
- "**/*Dockerfile"
- '**/ccip/**'
- '**/*ccip*/**'
- 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:
name: Run CCIP Tests For PR
permissions:
actions: read
checks: write
pull-requests: write
id-token: write
contents: read
needs: changes
if: github.event_name == 'pull_request' && needs.changes.outputs.run-tests == 'true'
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@9c49ffcf252efbedd7ec280e1993ba29dcbc9443 # 2026-04-28
with:
workflow_name: Run CCIP Integration Tests For PR
chainlink_version: ${{ inputs.cl_ref || github.sha }}
test_path: .github/integration-in-memory-tests.yml
test_trigger: PR Integration CCIP Tests
skip_image_build: true # in-memory tests do not require an image
use-self-hosted-runners: ${{ needs.changes.outputs.should_use_self_hosted_runner }}
quarantine: "true"
secrets:
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }}
AWS_REGION: ${{ secrets.AWS_REGION }}
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_BOT_TOKEN: ${{ secrets.QA_SLACK_API_KEY }}
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_CHAINLINK_READ_ONLY_TOKEN_ISSUER_ROLE_ARN }}
OPTIONAL_GATI_LAMBDA_URL: ${{ secrets.AWS_INFRA_RELENG_TOKEN_ISSUER_LAMBDA_URL}}
TRUNK_API_KEY: ${{ secrets.TRUNK_API_KEY }}
run-ccip-integration-in-memory-tests-for-merge-queue:
name: Run CCIP Integration In Memory Tests For Merge Queue
permissions:
actions: read
checks: write
pull-requests: write
id-token: write
contents: read
needs: changes
if: github.event_name == 'merge_group' && needs.changes.outputs.run-tests == 'true'
uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@9c49ffcf252efbedd7ec280e1993ba29dcbc9443 # 2026-04-28
with:
workflow_name: Run CCIP Integration Tests For Merge Queue
chainlink_version: ${{ inputs.cl_ref || github.sha }}
test_path: .github/integration-in-memory-tests.yml
test_trigger: Merge Queue Integration CCIP Tests
slack_notification_after_tests: on_failure
slack_notification_after_tests_channel_id: "#ccip-testing"
slack_notification_after_tests_name: CCIP Integration Tests In Merge Queue
use-self-hosted-runners: ${{ needs.changes.outputs.should_use_self_hosted_runner }}
skip_image_build: true # in-memory tests do not require an image
quarantine: "true"
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_BOT_TOKEN: ${{ secrets.QA_SLACK_API_KEY }}
QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }}
QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
AWS_REGION: ${{ secrets.AWS_REGION }}
QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
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_CHAINLINK_READ_ONLY_TOKEN_ISSUER_ROLE_ARN }}
OPTIONAL_GATI_LAMBDA_URL: ${{ secrets.AWS_INFRA_RELENG_TOKEN_ISSUER_LAMBDA_URL}}
TRUNK_API_KEY: ${{ secrets.TRUNK_API_KEY }}
check-integration-test-results:
if: always()
name: Integration Tests
runs-on: ubuntu-latest
needs:
[
run-ccip-integration-in-memory-tests-for-pr,
run-ccip-integration-in-memory-tests-for-merge-queue,
]
steps:
- name: Fail the job if ccip tests in PR not successful
if: always() && needs.run-ccip-integration-in-memory-tests-for-pr.result == 'failure'
run: exit 1
- 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