Skip to main content

local-cre-e2e

Configure and run local CRE environments and CRE end-to-end tests in the chainlink repo. Use this when starting local CRE on the default topology, running smoke or regression CRE tests, or creating a custom topology to override flags, limits, capability config, or user config overrides.

Source facts

Repository
smartcontractkit/chainlink
Last source activity
May 22, 2026 at 05:24
Detected SKILL.md language
English
Stars
8,247
Forks
1,988

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
local-cre-e2e
description
Configure and run local CRE environments and CRE end-to-end tests in the chainlink repo. Use this when starting local CRE on the default topology, running smoke or regression CRE tests, or creating a custom topology to override flags, limits, capability config, or user config overrides.
# Local CRE E2E Use this skill when working in the `chainlink` repo and you need to: - start, stop, or restart local CRE - run CRE smoke or regression e2e tests on the default topology - run a test against a specific topology - create a custom topology to override limits, flags, capability config, or user config overrides This skill is for local CRE system-test workflows, not for generic unit tests. ## Assumptions - Repo root is the `chainlink` checkout. - Local CRE commands are run from `core/scripts/cre/environment`. - CRE e2e test commands are run from `system-tests/tests`. - Only one local CRE environment should be treated as active at a time unless the harness is explicitly known to support isolation. ## Default Workflow Use the default topology when the user asks to run the standard local CRE suite or to verify a change without special flags. 1. Stop any existing local CRE environment: ```bash cd core/scripts/cre/environment go run . env stop -a ``` 2. If the environment has not been prepared yet, set it up once: ```bash cd core/scripts/cre/environment go run . env setup ``` 3. Start local CRE on the default topology: ```bash cd core/scripts/cre/environment go run . env start ``` 4. Optionally bring up observability helpers: ```bash go run . obs up ``` Use `--with-chip-ingress-stack` on `env start` when the test depends on the real stack, or when you want Red Panda Console to debug workflow events. (`--with-beholder` is deprecated.) ## Running E2E Tests On The Default Topology For the normal CRE smoke suite: ```bash cd system-tests/tests go test ./smoke/cre -timeout 20m -run '^Test_CRE_' ``` For only the V2 smoke suite: ```bash cd system-tests/tests go test ./smoke/cre -timeout 15m -run '^Test_CRE_V2' ``` For regression tests: ```bash cd system-tests/tests go test ./regression/cre -timeout 20m -run '^Test_CRE_' ``` Rule of thumb: - `smoke` is for happy-path and sanity coverage - `regression` is for edge cases and negative cases ## Running A Specific Test Or Bucket Use a narrow regex when debugging a single scenario or bucket: ```bash cd system-tests/tests go test ./smoke/cre -timeout 20m -run '^Test_CRE_V2_Suite_Bucket_B$' -count=1 -v ``` Examples: ```bash cd system-tests/tests go test ./smoke/cre -timeout 20m -run 'Test_CRE_V2_Suite_Bucket_B/.*/Vault' -count=1 -v ``` ```bash cd system-tests/tests go test ./regression/cre -timeout 20m -run '^Test_CRE_V2_Consensus_Regression$' -count=1 -v ``` Prefer `-count=1` when re-running flaky or stateful CRE scenarios. ## Using A Specific Topology Use a non-default topology when the test requires a specific DON layout, chain, or feature configuration. 1. Stop the existing environment: ```bash cd core/scripts/cre/environment go run . env stop -a ``` 2. Start local CRE with `CTF_CONFIGS` pointing at the topology file: ```bash cd core/scripts/cre/environment CTF_CONFIGS=./configs/workflow-gateway-capabilities-don.toml go run . env start ``` 3. Run the target test: ```bash cd system-tests/tests TOPOLOGY_NAME=workflow-gateway-capabilities \ go test ./smoke/cre -timeout 20m -run '^Test_CRE_V2_Suite_Bucket_B$' -count=1 -v ``` `TOPOLOGY_NAME` is optional but useful because many CRE suite tests include it in subtest names. ## Creating A Custom Topology Create a custom topology when the user wants to override: - limits - feature flags - capability config - DON composition - additional sources - `user_config_overrides` Workflow: 1. Pick the closest existing topology from `core/scripts/cre/environment/configs/`. 2. Copy it to a new file in the same directory. 3. Change only the fields needed for the scenario. 4. Start local CRE with `CTF_CONFIGS=<new topology>`. 5. Run only the relevant tests first. Example: ```bash cd core/scripts/cre/environment/configs cp workflow-gateway-capabilities-don.toml workflow-gateway-capabilities-don-my-override.toml ``` Then start it: ```bash cd ../ CTF_CONFIGS=./configs/workflow-gateway-capabilities-don-my-override.toml go run . env start ``` Then run the intended tests: ```bash cd ../../../system-tests/tests TOPOLOGY_NAME=workflow-gateway-capabilities-my-override \ go test ./smoke/cre -timeout 20m -run '^Test_CRE_V2_Suite_Bucket_B$' -count=1 -v ``` ## Override Guidelines When making a custom topology: - keep the diff small and purpose-specific - prefer copying the nearest topology instead of building a new one from scratch - use a descriptive filename that states what changed - do not change unrelated images, chains, or capabilities unless the test needs it - if the topology is only for a one-off local check, keep it local and avoid adding it to CI Typical override points: - `nodesets.capability_configs` - `nodesets.user_config_overrides` - CRE feature flags - additional mock or support-service endpoints ## Restart And Cleanup When changing topology or low-level config, prefer a full stop/start instead of assuming the running environment will converge. Clean restart: ```bash cd core/scripts/cre/environment go run . env stop -a CTF_CONFIGS=./configs/<topology>.toml go run . env start ``` When done: ```bash cd core/scripts/cre/environment go run . env stop -a ``` ## Troubleshooting - If tests unexpectedly use the wrong topology, stop local CRE and restart with the intended `CTF_CONFIGS`. - If the test suite appears to reuse stale state, rerun with `-count=1`. - If a test depends on logs, traces, or dashboards, bring up `go run . obs up`. - If a topology-specific failure looks unrelated to the test, first confirm the environment actually started with the intended topology. ## References For longer repo-specific guidance, see: - `docs/local-cre/index.md` - `docs/local-cre/system-tests/index.md` - `docs/local-cre/system-tests/running-tests.md`
View on GitHub