zscripts-token-savers/tests
Kelly Michels f2e6302d00
fix(zdeploy): build docker stacks that come from a Dockerfile, instead of restarting the old image (#81)
* fix(zdeploy): build docker stacks that come from a Dockerfile

Mirrors the fix in the private scripts repo; the code is identical in both, only
the config differs.

The docker kind ran `docker compose pull` then `docker compose up -d`. That is
right for a stack of published images and wrong for one built from a Dockerfile
in the tree, where there is nothing to pull. `up -d` builds only when the image
is MISSING, so the first deploy works and every one after it uploads the new
code, starts the old image, and reports success.

A project opts into building with deploy.build, which runs
`docker compose build --pull` so the base image is refreshed at the same time.
Stacks that pull are unaffected.

The example config documents the flag on the docker project, next to the
existing note about startApp, because the failure is silent and nobody goes
looking for a setting they do not know exists.

CHECKSUMS.txt regenerated, since two covered scripts changed.

286 tests pass, 1 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(checksums): hash the scripts as git checks them out, not as a tool wrote them

CI failed on the two files this branch touches while the same suite passed here.
The manifest was right about the wrong bytes.

.gitattributes pins *.ps1 to eol=crlf, and its comment says why: it makes these
files byte-identical on every platform, which is what lets CHECKSUMS.txt hold
one hash per file rather than one per OS. The edit that added Get-DockerImageStep
was applied by a script that wrote LF, so the working copy stopped matching the
pin. zchecksums then faithfully recorded the LF hashes, and every checkout that
honours .gitattributes - including CI - disagreed.

Nothing was wrong with the committed content: git normalises on the way in, so
the objects were always correct. Only the local working copy and the manifest
taken from it were off.

Re-materialised both files through git so they carry the endings the attribute
pins, then regenerated the manifest from those.

286 tests pass, 1 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 12:32:20 -05:00
..
fixtures test: add Pester suite for ZHelpers pure logic + ZCONFIG seam (phases 1-2) (#27) 2026-07-26 12:20:32 -05:00
ArgumentParsing.Tests.ps1 perf(tests): run each child-process invocation once (#77) 2026-09-10 15:12:22 -05:00
Checksums.Tests.ps1 chore: point repo URLs at evomedia-net/evo.* (#44) 2026-08-09 11:31:43 -05:00
DeployTag.Tests.ps1 chore(mirror): mirror tagOnDeploy and the zstart gitPull fix, and stop publishing current product names (#72) 2026-09-08 13:40:45 -05:00
DockerImageStep.Tests.ps1 fix(zdeploy): build docker stacks that come from a Dockerfile, instead of restarting the old image (#81) 2026-09-14 12:32:20 -05:00
Invoke-Coverage.ps1 test(coverage): run the Pester suite with code coverage (#47) 2026-08-13 16:26:19 -05:00
NewProjectArchive.Tests.ps1 chore: point repo URLs at evomedia-net/evo.* (#44) 2026-08-09 11:31:43 -05:00
PlainTextTwins.Tests.ps1 docs(security): security notes, and a twin for every root .md (#78) 2026-09-12 00:35:29 -05:00
sanitization-patterns.psd1 feat: add zmerge and zpull — fleet-wide PR merging and checkout sync (#79) 2026-09-12 15:52:18 -05:00
Sanitization.Tests.ps1 chore(mirror): mirror tagOnDeploy and the zstart gitPull fix, and stop publishing current product names (#72) 2026-09-08 13:40:45 -05:00
StartGitPull.Tests.ps1 chore(mirror): mirror tagOnDeploy and the zstart gitPull fix, and stop publishing current product names (#72) 2026-09-08 13:40:45 -05:00
VerifyPlan.Tests.ps1 chore(mirror): mirror tagOnDeploy and the zstart gitPull fix, and stop publishing current product names (#72) 2026-09-08 13:40:45 -05:00
ZHelpers.Tests.ps1 chore: point repo URLs at evomedia-net/evo.* (#44) 2026-08-09 11:31:43 -05:00