Files

1.8 KiB

Exact CI artifact (WJ-026)

tools/test-ci-artifact executes unchanged copies of ci-deploy, remote and the deployment transport in a temporary Git repository. Its artifact contains the packaged application supplied to the production acceptance stage. The fixture manifest identifies that repository's main-branch commit and the JAR's SHA-256 digest.

The SSH adapter never opens a network connection. It decodes the actual helper source transmitted by remote, checks that it matches the source in the fixture checkout, and executes its real deployment algorithm with local host adapters. The resulting selected release and deployed manifest must equal the input manifest, and the deployed JAR must have the original digest. Dummy credential files satisfy CI configuration checks without using real keys.

Both Gradle entry points are replaced by failing traps, so an unexpected rebuild fails the test. The fixture also rejects a manifest naming a different commit and an artifact changed after validation; neither may reach SSH. A non-main branch must skip deployment. The successful deployment log must identify the same commit.

This test covers the CI command, transport and artifact publication boundary. Its service adapter does not execute the JAR and treats the database as opaque bytes; real JVM/H2 startup and rollback are covered by the other production scenarios. It makes no claim about SSH connectivity or provider backup recovery.

WJ-026 runs in productionAcceptance; its report is build/reports/production/ci-artifact.json.

Verification: the standalone command-chain probe passed, followed by the targeted WJ-026 Gradle/Cucumber run on 0.1.87-SNAPSHOT: all four steps passed in 5.628 seconds. The normal CI default includes this scenario alongside all previous production checks. Completion version: 0.1.88-SNAPSHOT; full CI verification is pending.