CI can skip EVM end-to-end tests when only embed artifact inputs change, even though those changes affect runtime behavior the suite exercises.
PR #2668 consolidated the standalone workflow file for EVM E2E into job e2e-evm inside workflow .github/workflows/test-core.yml. The consolidation simplified CI layout but narrowed path-based triggering.
The previous workflow used filter evm-changes from action dorny/paths-filter with repo-wide globs for **.ts, **.js, and **.json, alongside Go and proto paths under directories like evm/, app/, and x/. The consolidated job changes-nibiru-go gates on filter nibiru-go, which covers directory evm/**/*.go, directory evm/e2e/**, and other Go-centric paths, but does not include directory evm/embeds/ or the former JS/JSON/TS globs.
Directory evm/embeds/ holds Hardhat-compiled Solidity artifacts, generated ABI JSON, and the npm package @nibiruchain/solidity. Recipe just gen-embeds recompiles contracts and refreshes ABI output. Package evm/embeds is imported broadly across the EVM module—precompiles, keeper tests, RPC tests, and upgrade handlers all depend on embedded contract ABIs and bytecode. A PR that changes only Solidity sources, Yarn lockfiles, or generated ABI JSON under evm/embeds/ can pass CI without running job e2e-evm, leaving regressions in embed-driven EVM behavior undetected until a later Go change retriggers the job.
This issue tracks restoring CI coverage parity for embed-driven EVM changes: path filters should treat evm/embeds/** (and any other non-Go inputs the E2E suite relies on) as first-class triggers for job e2e-evm, without reintroducing overly broad repo-wide JS/JSON filters unless that breadth is still warranted.
Originally posted by @cursor[bot] in #2668 (comment)
CI can skip EVM end-to-end tests when only embed artifact inputs change, even though those changes affect runtime behavior the suite exercises.
PR #2668 consolidated the standalone workflow file for EVM E2E into job
e2e-evminside workflow.github/workflows/test-core.yml. The consolidation simplified CI layout but narrowed path-based triggering.The previous workflow used filter
evm-changesfrom actiondorny/paths-filterwith repo-wide globs for**.ts,**.js, and**.json, alongside Go and proto paths under directories likeevm/,app/, andx/. The consolidated jobchanges-nibiru-gogates on filternibiru-go, which covers directoryevm/**/*.go, directoryevm/e2e/**, and other Go-centric paths, but does not include directoryevm/embeds/or the former JS/JSON/TS globs.Directory
evm/embeds/holds Hardhat-compiled Solidity artifacts, generated ABI JSON, and the npm package@nibiruchain/solidity. Recipejust gen-embedsrecompiles contracts and refreshes ABI output. Packageevm/embedsis imported broadly across the EVM module—precompiles, keeper tests, RPC tests, and upgrade handlers all depend on embedded contract ABIs and bytecode. A PR that changes only Solidity sources, Yarn lockfiles, or generated ABI JSON underevm/embeds/can pass CI without running jobe2e-evm, leaving regressions in embed-driven EVM behavior undetected until a later Go change retriggers the job.This issue tracks restoring CI coverage parity for embed-driven EVM changes: path filters should treat
evm/embeds/**(and any other non-Go inputs the E2E suite relies on) as first-class triggers for jobe2e-evm, without reintroducing overly broad repo-wide JS/JSON filters unless that breadth is still warranted.Originally posted by @cursor[bot] in #2668 (comment)