Skip to content
Closed
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
346 changes: 346 additions & 0 deletions .github/.agents/bottleneck.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ GitHub Actions in the Chainlink Go monorepo.
- Prefer runs-on runners when ubuntu-latest is insufficient.
- Minimize YAML and shell in workflows.
- Resolve smartcontractkit/.github from a local clone. Ask the user for the path if you cannot find it.
- Use `echo "key=value" | tee -a "$GITHUB_OUTPUT"` instead of `echo "key=value" >> "${GITHUB_OUTPUT}"`
</rules>

<docs>
Expand Down
11 changes: 3 additions & 8 deletions .github/workflows/ccip-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,10 @@ jobs:

- name: Set up Go
id: setup-go
uses: smartcontractkit/.github/actions/ctf-setup-go@fa1d48a33e24f9b3b9f8c52e99a578a4597cb2a5 # v0.4.0
uses: actions/setup-go@v7
with:
go_mod_path: integration-tests/go.mod
cache_key_id: integration-tests-v1
cache_builds: true
cache_restore_only: "true"
should_tidy: false
no_cache: false
gati_token: ${{ steps.github-token.outputs.access-token }}
go-version-file: integration-tests/go.mod
cache: false # Using pre-compiled binaries, only need go setup for gotestsum

- name: Restore Pre-Compiled Test Binaries from S3 Cache
uses: actions/cache/restore@v6
Expand Down
16 changes: 5 additions & 11 deletions .github/workflows/cre-mixed-env-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ on:
workflow_dispatch:
inputs:
chainlink_image_repository_path:
description:
"ECR repository name used to compose the PR image with chainlink_image_tag."
description: "ECR repository name used to compose the PR image with chainlink_image_tag."
required: true
type: string
chainlink_image_tag:
Expand Down Expand Up @@ -59,8 +58,7 @@ on:
workflow_call:
inputs:
chainlink_image_repository_path:
description:
"ECR repository name used to compose the PR image with chainlink_image_tag."
description: "ECR repository name used to compose the PR image with chainlink_image_tag."
required: true
type: string
chainlink_image_tag:
Expand Down Expand Up @@ -166,14 +164,10 @@ jobs:
persist-credentials: false

- name: Set up Go
id: setup-go
uses: smartcontractkit/.github/actions/ctf-setup-go@fa1d48a33e24f9b3b9f8c52e99a578a4597cb2a5 # v0.4.0
uses: actions/setup-go@v7
with:
go_mod_path: system-tests/tests/go.mod
# No Go build/restore: mixed-env runs the pre-compiled cre-smoke.test binary
# (restored below), and the non-determinism gate reuses that same binary — so
# nothing is compiled here and cache restore would only waste ~30-60s per run.
no_cache: true
go-version-file: system-tests/tests/go.mod
cache: false

- name: Restore Pre-Compiled Test Binaries from S3 Cache
uses: actions/cache/restore@v6
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/cre-regression-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,10 @@ jobs:
persist-credentials: false

- name: Set up Go
id: setup-go
uses: smartcontractkit/.github/actions/ctf-setup-go@fa1d48a33e24f9b3b9f8c52e99a578a4597cb2a5 # v0.4.0
uses: actions/setup-go@v7
with:
go_mod_path: system-tests/tests/go.mod
no_cache: true
go-version-file: system-tests/tests/go.mod
cache: false

- name: Restore Pre-Compiled Test Binaries from S3 Cache
uses: actions/cache/restore@v6
Expand Down Expand Up @@ -256,7 +255,7 @@ jobs:

exit_code="$?"
if [ "$exit_code" -eq 0 ]; then
echo "tests_result=✅ Tests passed" >> "$GITHUB_OUTPUT"
echo "tests_result=✅ Tests passed" | tee -a "$GITHUB_OUTPUT"
fi

echo "⚠️⚠️⚠️ Add 'skip-e2e-regression' label to skip this step if necessary ⚠️⚠️⚠️"
Expand Down
25 changes: 17 additions & 8 deletions .github/workflows/cre-system-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ on:
"The version of Chainlink repository to use for the tests. If
empty, defaults to github.sha."
default: ""
test_matrix:
required: false
type: string
description: "Optional precomputed test matrix JSON string."
default: ""

jobs:
define-test-matrix:
Expand All @@ -76,6 +81,11 @@ jobs:
id: define-matrix
shell: bash
run: |
if [[ -n '${{ inputs.test_matrix }}' ]]; then
echo 'matrix=${{ inputs.test_matrix }}' | tee -a "$GITHUB_OUTPUT"
exit 0
fi

TOPOLOGIES_JSON='[
{"topology":"workflow-gateway-capabilities","configs":"configs/workflow-gateway-capabilities-don.toml"}
]'
Expand All @@ -102,10 +112,10 @@ jobs:
"Test_CRE_V2_Solana_Read_Accounts": [
{"topology":"workflow","configs":"configs/workflow-don-solana.toml"}
],
"Test_CRE_V2_Solana_Read_Block": [
"Test_CRE_V2_Solana_Read_Block": [
{"topology":"workflow","configs":"configs/workflow-don-solana.toml"}
],
"Test_CRE_V2_Solana_Read_Tx": [
"Test_CRE_V2_Solana_Read_Tx": [
{"topology":"workflow","configs":"configs/workflow-don-solana.toml"}
],
"Test_CRE_V2_Sharding": [
Expand All @@ -125,7 +135,7 @@ jobs:
]
}'

test_names=$(grep -rh -oP '^func \K(Test|Example)[^(]+' system-tests/tests/smoke/cre/*_test.go | grep -v Test_Upgrade | grep -v '^TestMain$')
test_names=$(grep -rh -oP '^func \K(Test|Example)[^(]+' system-tests/tests/smoke/cre/*_test.go | grep -v Test_Upgrade | grep -v '^TestMain$' | grep -v '_LoadExpectedConfig$' | grep -v '_CRESettingDefaults' | grep -v '^TestMustMintVaultJWT' | grep -v '^TestPendingQueueStallWedge')

tests=$(echo "$test_names" | jq -c -R -s \
--argjson run_id "${{ github.run_id }}" \
Expand Down Expand Up @@ -186,11 +196,10 @@ jobs:
persist-credentials: false

- name: Set up Go
id: setup-go
uses: smartcontractkit/.github/actions/ctf-setup-go@fa1d48a33e24f9b3b9f8c52e99a578a4597cb2a5 # v0.4.0
uses: actions/setup-go@v7
with:
go_mod_path: system-tests/tests/go.mod
no_cache: true
go-version-file: system-tests/tests/go.mod
cache: false

- name: Restore Pre-Compiled Test Binaries from S3 Cache
uses: actions/cache/restore@v6
Expand Down Expand Up @@ -391,7 +400,7 @@ jobs:

exit_code="$?"
if [ "$exit_code" -eq 0 ]; then
echo "tests_result=✅ Tests passed" >> "${GITHUB_OUTPUT}"
echo "tests_result=✅ Tests passed" | tee -a "${GITHUB_OUTPUT}"
fi

- name:
Expand Down
18 changes: 10 additions & 8 deletions .github/workflows/integration-in-memory-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,14 +186,17 @@ jobs:

- name: Set up Go for compilation
id: setup-go
uses: smartcontractkit/.github/actions/ctf-setup-go@fa1d48a33e24f9b3b9f8c52e99a578a4597cb2a5 # v0.4.0
uses: actions/setup-go@v7
with:
go_mod_path: integration-tests/go.mod
cache_key_id: integration-tests-v1
cache_builds: true
cache_restore_only: ${{ github.ref_name != 'develop' }}
should_tidy: false
gati_token: ${{ steps.github-token.outputs.access-token }}
go-version-file: integration-tests/go.mod
cache: true
cache-dependency-path: |
system-tests/tests/go.sum
integration-tests/go.sum

- name: Configure Go private modules
shell: bash
run: go env -w GOPRIVATE=github.com/smartcontractkit/*

- name: Compile E2E test binaries and tools
shell: bash
Expand All @@ -202,7 +205,6 @@ jobs:
# Restored mod cache contains shallow VCS clones that can be in an
# inconsistent state after tar restore, breaking fetches of new
# pseudo-versions ("shallow file has changed since we read it").
# Drop them; only private repos re-clone, public zips stay cached.
rm -rf "$(go env GOMODCACHE)/cache/vcs"
mkdir -p integration-tests/bin
(cd integration-tests && go test -c -ldflags="-s -w" -o ./bin/ccip-inmemory.test ./smoke/ccip)
Expand Down
Loading
Loading