[DX-3444] migrate vrfv2 smoke tests to devenv#21618
Conversation
|
✅ No conflicts with other open PRs targeting |
There was a problem hiding this comment.
Pull request overview
Risk Rating: MEDIUM
This PR migrates the classic VRFv2 (Coordinator v2) smoke coverage from the legacy integration-tests/smoke harness into the devenv product + test structure, and rewires CI to run the new devenv-based VRFv2 suites (basic, multiple keys, BHS, batch) while removing the old integration-test entrypoints.
Changes:
- Moved VRFv2 smoke scenarios into
devenv/tests/vrfv2and removed the legacyintegration-tests/smoke/vrfv2_test.go. - Added a new
devenv/products/vrfv2product (config, node/job setup, TOMLs) plus VRFv2 contract helpers indevenv/contracts/vrf_v2.go. - Updated CI/workflows to drop old VRFv2 integration-test jobs and add
devenv-nightlyVRFv2 matrix rows.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| integration-tests/smoke/vrfv2_test.go | Removes legacy VRFv2 smoke tests (migration target). |
| integration-tests/smoke/README.md | Documents VRFv2 smoke now living under devenv/tests/vrfv2. |
| integration-tests/go.mod | Adjusts go-cmp dependency classification after removing legacy tests. |
| devenv/tests/vrfv2/smoke_test.go | New devenv-based VRFv2 basic smoke scenarios. |
| devenv/tests/vrfv2/multiple_keys_test.go | New devenv test validating fulfillment sender rotation across TX keys. |
| devenv/tests/vrfv2/helpers.go | Shared helpers for VRFv2 devenv tests (deploy/fund/request/wait utilities). |
| devenv/tests/vrfv2/bhs_test.go | New devenv test coverage for BHS behavior. |
| devenv/tests/vrfv2/batch_test.go | New devenv test coverage for batch fulfillment enabled/disabled. |
| devenv/tests/logpoller/logpoller_test.go | Moves logpoller config types out of the test file. |
| devenv/tests/logpoller/config.go | New extracted logpoller config/validation types. |
| devenv/products/vrfv2/basic.toml | Product config for basic VRFv2 smoke devenv run. |
| devenv/products/vrfv2/two_keys.toml | Product config enabling multiple TX keys for rotation test. |
| devenv/products/vrfv2/bhs.toml | Product config enabling BHS job topology. |
| devenv/products/vrfv2/batch.toml | Product config for batch fulfillment test parameters. |
| devenv/products/vrfv2/job_spec.go | VRFv2 job + pipeline TOML builders for devenv. |
| devenv/products/vrfv2/job_spec_bhs.go | BHS job TOML builder for devenv VRFv2. |
| devenv/products/vrfv2/core.go | Product orchestration: keys/secrets, contract deploys, job creation, funding. |
| devenv/products/vrfv2/configuration.go | VRFv2 product config schema + load/store. |
| devenv/go.mod | Adds direct deps needed by new devenv VRFv2 code/tests. |
| devenv/environment.go | Registers new vrfv2 product type in devenv product factory. |
| devenv/env-vrfv2.toml | New base devenv environment definition for VRFv2. |
| devenv/env-vrfv2-bhs.toml | New devenv environment definition with 2 nodes for BHS topology. |
| devenv/contracts/vrf_v2.go | New VRFv2 contract wrappers + log parsing/wait helpers used by tests. |
| .github/workflows/on-demand-vrfv2-smoke-tests.yml | Removes legacy on-demand workflow for integration-test VRFv2 smoke. |
| .github/workflows/devenv-nightly.yml | Adds 4 nightly rows to run the new devenv VRFv2 suites. |
| .github/workflows/client-compatibility-tests.yml | Drops legacy VRFv2 integration-test compatibility rows. |
| .github/e2e-tests.yml | Removes legacy VRFv2 integration-test entries from the e2e matrix. |
| .github/E2E_TESTS_ON_GITHUB_CI.md | Updates on-demand workflow documentation list. |
Areas requiring scrupulous human review:
devenv/contracts/vrf_v2.go: event/log parsing & “wait then filter” behavior (panics/false positives can make smoke flaky and hard to debug).devenv/products/vrfv2/core.go: key generation/import + funding + job creation ordering (sensitive to CTF/CL node startup semantics).- CI rewiring in
.github/workflows/devenv-nightly.ymland.github/e2e-tests.yml.
Suggested reviewers (per CODEOWNERS):
@smartcontractkit/devex-tooling(alldevenv/changes; integration-tests harness changes)@smartcontractkit/devex-cicd(workflow/matrix changes under.github/)@smartcontractkit/core(cross-cutting CI + module changes)
|
@pavel-raykov we had to create contract wrappers and helpers in |
sorry, I am not sure I fully understand - do you make copies from https://github.com/smartcontractkit/chainlink/tree/2e14d51d4e2efef540bee4ac22d798ea647941f0/integration-tests/contracts because you cannot import them? |
|





Migrate VRFv2 smoke to devenv
VRFv2 smoke is moved from
integration-tests/smoke/vrfv2_test.gotodevenv/products/vrfv2+devenv/tests/vrfv2(env: env-vrfv2.toml, BHS: env-vrfv2-bhs.toml), withdevenv/contracts/vrf_v2.go helpersand product name vrfv2.Contract wrappers that were copied over are test-only and they allows us treat different contract versions polymorphically. Since these wrappers exist only in
integration-testswe cannot substitute them with imports fromchainlink-evm.CI
e2e-tests.ymland client-compatibility-tests;Out of scope
TestVRFOwner,TestVRFv2NodeReorg(not migrated, removed).Verification