fix(ci): fail closed on skipped security e2e and gate frontend tests #199
No reviewers
Labels
No labels
agent:implement
agent:ready
backend
bug
cannot-reproduce
confirmed
desktop
docs
documentation
duplicate
enhancement
feature
frontend
good first issue
help wanted
high-risk
in-review
invalid
mobile
needs-triage
P0-critical
P1-high
P2-medium
P3-low
qa
QA
question
ready
report
responsive
security
security-escalate
smart-contract
solana
tablet
test-pass
ux
wallet-issue
wallet:keplr
wallet:metamask
wallet:station
wallet:walletconnect
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-bridge-monorepo!199
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue/187"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
cl8y-e2e run/fullnow exit non-zero when a security-critical test isSkip, even iffailed() == 0. Explicit--quickstill allowlists skips.canceler_detects_fraud_on_solana_destinationis omitted from the default required set whenSOLANA_ENABLEDis unset (not coverage); aSkipof that name, or ofcanceler_solana_source_fraud_detection, still fails.scripts/e2e-test.shstep from.github/workflows/e2e.yml. That job now runs cancelerintegration_testwith--ignoredafter Anvil and LocalTerra are up. MissingEVM_BRIDGE_ADDRESS/TERRA_BRIDGE_ADDRESSfails the step and the test.#[ignore]stays, so a laptopcargo testdoes not run those cases.frontend-hash-verifyruns fullnpm run test:unitwith no test-file arguments. Newfrontend-playwright-smokerunse2e/wallet-connect.spec.tson projectchromiumwithE2E_UI_ONLY=1(no compose).Fixes #187.
Acceptance
Skipwith zero failures fails the suite (SuiteMode::Required).--quickallowlists skips. Optional Solana live names that matchcanceler_*are not allowlisted; the destination-fraud case is omitted whenSOLANA_ENABLEDis unset so a passing suite still exits 0 and that case is not coverage..github/workflowsand.woodpecker.yamlhave noscripts/e2e-test.shreference.npm run test:unitwith no path filter.E2E_UI_ONLY=1, projectchromium,e2e/wallet-connect.spec.ts,--workers=1. A failing step fails the pipeline.e2e.ymlrunscargo test --test integration_test --release -- --ignoredwithINTEGRATION_TEST=1and both bridge addresses. Empty or missing addresses fail.#[ignore]remains.cargo test --test integration_testwithout--ignoredleft those cases ignored.docs/testing.mdpoints atcl8y-e2eand the Woodpecker frontend steps.Validation
cargo test --manifest-path packages/e2e/Cargo.toml --lib exit_policy— 9 passed (T1–T3, A1, A2).cargo check --manifest-path packages/e2e/Cargo.toml --bins—cl8y-e2ebinary typechecks.cargo test --manifest-path packages/canceler/Cargo.toml --test integration_test— 10 passed, 10 ignored (AC7). Missing/empty bridge address panics (AC6 unit level).rg e2e-test.sh .github .woodpecker.yaml— no hits (T4).Gaps
npm run test:unithere (nonpmon this worker). The YAML is the gate; a live Woodpecker run still has to install Chromium and start Vite.--ignoredagainst a live Anvil/LocalTerra. T7 (test_anvil_connectivityactually running) remains a CI-log check.OPTIONAL_SOLANA_LIVE_ALLOWLISTis empty on purpose: every live SolanaTestResultname in the suite is security-critical, so those skips are not allowlisted.Docs
docs/CI_TEST_INVARIANTS.md(INV-CI-SKIP-1, INV-CI-SKIP-2, INV-CI-E2E-1, INV-CI-FE-1, INV-CI-CAN-1).skills/agent-ci-fail-closed.md.drain skip: no occupying job for rebase/fix-pr/CI-wait; remaining continue
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.