35 lines
1.8 KiB
Markdown
35 lines
1.8 KiB
Markdown
# 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.
|