From d6beeafa2aca6a6f3a1b4327cf36f684f87f6e2b Mon Sep 17 00:00:00 2001 From: Paul Hitt Date: Fri, 28 Aug 2026 08:23:53 -0400 Subject: [PATCH] Fetch the published vectors in CI - the split removed the sibling they lived in The engine job failed on its first real run: PublishedVectorsTest and AccountKdfTest search sibling checkouts for the canonical vector files, and the standalone repository has no ../../engine and no flamenet-e2e clone beside it on a runner. Both tests already honour an env override, so CI fetches both files from flamenet-e2e at HEAD and points the tests at them. Deliberately NOT a copied vector file in this repo: a copy drifts, and an engine tested against its own copy has quietly stopped being tested against the published ones. The job now fails if flamenet-e2e is unreachable, which is the correct failure - an engine that cannot see the vectors must not report green. Verified by reproducing CI locally: standalone checkout, env vars only, :engine:test passes. Co-Authored-By: Claude Opus 5 --- .gitlab-ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9895c2d..8ac2e61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,10 +39,27 @@ variables: # The protocol, against the same published vectors the JS and Swift engines are # held to. No SDK, no emulator, no device. +# 🔴 **The vectors live in flamenet-e2e, and this repo does not carry a copy.** +# That is deliberate — a copied vector file is one that drifts, and an engine +# tested against its own copy has quietly stopped being tested against the +# published ones. The test searches sibling checkouts and honours +# FLAMENET_VECTORS; in CI there are no siblings, so the pipeline fetches the +# file from the canonical repository at HEAD and points the tests at it. +# +# ⚠️ This makes the job fail if flamenet-e2e is unreachable, and that is the +# correct failure: an engine that cannot see the vectors must not report green. engine: <<: *rules stage: test image: gradle:9-jdk21 + variables: + FLAMENET_VECTORS: /tmp/protocol-v1.json + FLAMENET_ACCOUNT_VECTORS: /tmp/account-kdf-v1.json + before_script: + - curl -fsSL -o "$FLAMENET_VECTORS" + "https://gitlab.com/paulhitt/flamenet-e2e/-/raw/main/test/vectors/protocol-v1.json" + - curl -fsSL -o "$FLAMENET_ACCOUNT_VECTORS" + "https://gitlab.com/paulhitt/flamenet-e2e/-/raw/main/test/vectors/account-kdf-v1.json" script: - gradle :engine:test