Skip to content
Open
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
59 changes: 24 additions & 35 deletions .github/workflows/test-cl-smoke.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test Chainlink Node Integration
name: E2E Smoke Test (CL-Node)

on:
merge_group:
Expand Down Expand Up @@ -51,45 +51,44 @@ jobs:


e2e-smoke-cl-mode:
name: ${{ matrix.test.name }}
needs: build-cl-image
permissions:
id-token: write
contents: read
runs-on: runs-on=${{ github.run_id }}-${{ strategy.job-index }}/family=c6i/cpu=32+48/ram=64+96/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
strategy:
fail-fast: false
matrix:
test:
- name: TestE2ESmoke_Basic
run_cmd: TestE2ESmoke_Basic
config: "env.toml,env-cl.toml,env-cl-ci.toml"
pattern: TestE2ESmoke_Basic
profile: standard.clnode.ci.profile
timeout: 15m
- name: TestE2ESmoke_Basic_OneExecPerChain
run_cmd: TestE2ESmoke_Basic
config: "env.toml,env-cl.toml,env-cl-ci.toml,env-one-exec-per-chain-cl.toml"
pattern: TestE2ESmoke_Basic
profile: standard.clnode.ci.one-exec-per-chain.profile
timeout: 15m
- name: TestE2ESmoke_TokenVerification
run_cmd: TestE2ESmoke_TokenVerification
config: "env.toml,env-cl.toml,env-cl-ci.toml"
pattern: TestE2ESmoke_TokenVerification
profile: standard.clnode.ci.profile
timeout: 15m
- name: TestE2ESmoke_ExtraArgsV2
run_cmd: TestE2ESmoke_ExtraArgsV2
config: "env.toml,env-cl.toml,env-cl-ci.toml"
pattern: TestE2ESmoke_ExtraArgsV2
profile: standard.clnode.ci.profile
timeout: 10m
- name: TestHA_CrossComponentDown
run_cmd: TestHA_CrossComponentDown
config: "env.toml,env-HA.toml,env-cl.toml,env-cl-ci.toml"
pattern: TestHA_CrossComponentDown
profile: standard.ha.clnode.ci.profile
timeout: 10m
- name: Phased TestE2ESmoke_Basic
run_cmd: TestE2ESmoke_Basic_Phased
config: "env-phased.toml,env-cl-phased.toml,env-cl-ci-phased.toml"
flags: --env-mode phased
smoke_test_config: ../../env-phased-out.toml
pattern: TestE2ESmoke_Basic
profile: phased.clnode.ci.profile
timeout: 15m
# We need to configure HeadTracker for the CL tests to have finality depth. Otherwise, it does instant finality.
# - name: TestE2EReorg
# config: "env.toml,env-src-auto-mine.toml,env-cl.toml,env-cl-ci.toml"
# profile: standard.src-auto-mine.clnode.ci.profile
# timeout: 5m
fail-fast: false
steps:
- name: Enable S3 Cache for Self-Hosted Runners
uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
Expand Down Expand Up @@ -151,36 +150,26 @@ jobs:
build/devenv/go.sum

- name: Download Go dependencies
run: |
go mod download
run: go mod download

- name: Build Docker Images
run: just build-docker-ci
env:
DOCKER_BUILDKIT: 1

- name: Run Observability Stack
run: |
cd cmd/ccv && go install . && cd -
ccv obs u -m loki
- name: Install ccv CLI
run: go install ./cmd/ccv

- name: Run CCV environment with config
env:
JD_IMAGE: ${{ secrets.JD_IMAGE }}
run: |
ccv ${{ matrix.test.flags || '' }} u ${{ matrix.test.config }}
- name: Run Observability Stack
run: ccv obs up -m loki

- name: Run Smoke Test
id: test_run
working-directory: build/devenv/tests/e2e
run: ccv test --profile ${{ matrix.test.profile }} --pattern '${{ matrix.test.pattern }}' --timeout ${{ matrix.test.timeout }} --build=false
continue-on-error: true
env:
JD_IMAGE: ${{ secrets.JD_IMAGE }}
LOKI_URL: http://localhost:3030/loki/api/v1/push
# When unset, the test falls back to ../../env-out.toml (see GetSmokeTestConfig).
SMOKE_TEST_CONFIG: ${{ matrix.test.smoke_test_config || '' }}
run: |
set -o pipefail
go test -v -timeout ${{ matrix.test.timeout }} -count=1 -run ${{ matrix.test.run_cmd }}
continue-on-error: true

- name: Dump logs if they're not already dumped
if: always()
Expand Down
95 changes: 37 additions & 58 deletions .github/workflows/test-smoke.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: End-to-end CCV Test
name: E2E Smoke Test

on:
merge_group:
Expand All @@ -14,6 +14,7 @@ concurrency:

jobs:
e2e-smoke:
name: ${{ matrix.test.name }}
permissions:
id-token: write
contents: read
Expand All @@ -24,69 +25,53 @@ jobs:
matrix:
test:
- name: TestE2ESmoke_Basic
run_cmd: TestE2ESmoke_Basic
config: env.toml
pattern: TestE2ESmoke_Basic
profile: standard.profile
timeout: 15m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_Basic_OneExecPerChain
run_cmd: TestE2ESmoke_Basic
config: env.toml,env-one-exec-per-chain-standalone.toml
pattern: TestE2ESmoke_Basic
profile: standard.one-exec-per-chain.profile
timeout: 15m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_TokenVerification
run_cmd: TestE2ESmoke_TokenVerification
config: env.toml
pattern: TestE2ESmoke_TokenVerification
profile: standard.profile
timeout: 15m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_ExtraArgsV2
run_cmd: TestE2ESmoke_ExtraArgsV2
config: env.toml
pattern: TestE2ESmoke_ExtraArgsV2
profile: standard.profile
timeout: 10m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_ChainStatus
run_cmd: TestE2ESmoke_ChainStatus
config: env.toml
pattern: TestE2ESmoke_ChainStatus
profile: standard.profile
timeout: 10m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_JobQueue
run_cmd: TestE2ESmoke_JobQueue
config: env.toml
pattern: TestE2ESmoke_JobQueue
profile: standard.profile
timeout: 10m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_Replay
run_cmd: TestE2ESmoke_Replay
config: env.toml
pattern: TestE2ESmoke_Replay
profile: standard.profile
timeout: 10m
working-directory: build/devenv/tests/e2e
- name: TestE2EReorg
run_cmd: TestE2EReorg
config: env.toml,env-src-auto-mine.toml
pattern: TestE2EReorg
profile: standard.src-auto-mine.profile
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: TestChaos_AggregatorOutageRecovery
run_cmd: TestChaos_AggregatorOutageRecovery
config: env.toml
pattern: TestChaos_AggregatorOutageRecovery
profile: standard.profile
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: (TestChaos_VerifierFaultToleranceThresholdViolated|TestChaos_AllExecutorsDown|TestChaos_IndexerDown)
run_cmd: (TestChaos_VerifierFaultToleranceThresholdViolated|TestChaos_AllExecutorsDown|TestChaos_IndexerDown)
config: env.toml
pattern: (TestChaos_VerifierFaultToleranceThresholdViolated|TestChaos_AllExecutorsDown|TestChaos_IndexerDown)
profile: standard.profile
timeout: 5m
working-directory: build/devenv/tests/e2e
- name: TestE2ESmoke_AggregatorMessageDisablementRules
run_cmd: TestE2ESmoke_Aggregator(MessageDisablementRulesCLI|LaneDisablementRule|ChainDisablementRule)
config: env.toml,env-src-auto-mine.toml
pattern: TestE2ESmoke_Aggregator(MessageDisablementRulesCLI|LaneDisablementRule|ChainDisablementRule)
profile: standard.src-auto-mine.profile
timeout: 10m
working-directory: build/devenv/tests/e2e
- name: Phased TestE2ESmoke_Basic
run_cmd: TestE2ESmoke_Basic
config: env-phased.toml
flags: --env-mode phased
# env-phased.toml is the base config, so `ccv u` writes env-phased-out.toml.
# Override the test's default (../../env-out.toml) to read the phased output.
smoke_test_config: ../../env-phased-out.toml
pattern: TestE2ESmoke_Basic
profile: phased.profile
timeout: 15m
working-directory: build/devenv/tests/e2e
steps:
- name: Enable S3 Cache for Self-Hosted Runners
uses: runs-on/action@cd2b598b0515d39d78c38a02d529db87d2196d1e # v2.0.3
Expand Down Expand Up @@ -138,35 +123,29 @@ jobs:
cache-dependency-path: build/devenv/go.sum

- name: Download Go dependencies
run: |
go mod download
run: go mod download

- name: Build Docker Images
run: just build-docker-ci
env:
DOCKER_BUILDKIT: 1

- name: Run CCV environment
env:
JD_IMAGE: ${{ secrets.JD_IMAGE }}
run: |
cd cmd/ccv && go install . && cd -
ccv ${{ matrix.test.flags || '' }} u ${{ matrix.test.config }} && ccv obs up -m loki
- name: Install ccv CLI
run: go install ./cmd/ccv

- name: Run Observability Stack
run: ccv obs up -m loki

- name: Run Test ${{ matrix.test.name }}
id: test_run
working-directory: ${{ matrix.test.working-directory }}
env:
# When unset, the test falls back to ../../env-out.toml (see GetSmokeTestConfig).
SMOKE_TEST_CONFIG: ${{ matrix.test.smoke_test_config || '' }}
run: |
set -o pipefail
go test -v -timeout ${{ matrix.test.timeout }} -count=1 -run '${{ matrix.test.run_cmd }}'
run: ccv test --profile ${{ matrix.test.profile }} --pattern '${{ matrix.test.pattern }}' --timeout ${{ matrix.test.timeout }} --build=false
continue-on-error: true
env:
JD_IMAGE: ${{ secrets.JD_IMAGE }}

- name: Dump logs if they're not already dumped
if: always()
working-directory: ${{ matrix.test.working-directory }}
working-directory: build/devenv/tests/e2e
run: |
if [ ! -d "logs" ] || [ -z "$(ls -A logs)" ]; then
echo "Logs not found or empty. Dumping logs manually..."
Expand All @@ -188,7 +167,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: container-logs-standalone-${{ steps.sanitize_name.outputs.name }}
path: ${{ matrix.test.working-directory }}/logs
path: build/devenv/tests/e2e/logs
retention-days: 1

- name: Check test results
Expand Down
Loading
Loading