Unit tests inherited CI command files and wrote fake commit SHAs and image digests to the real job summary. Image reports also accepted unverified digests into the completed list, labelled one image result as a complete release, and printed character counts instead of Compose service counts.
All unit tests now redirect GITHUB_STEP_SUMMARY, GITHUB_OUTPUT, GITHUB_ENV, GITHUB_PATH, and GITHUB_STATE to temporary files. Cleanup restores the environment and removes the private files. A child-process regression checks that the full unit suite leaves external CI files unchanged.
The image builder checks the digest type and SHA-256 syntax before adding the image to its completed results. Per-image summaries identify the image and source commit. They state that the final build job must publish the complete release. Invalid metadata cannot appear as a completed image digest.
Compose verification now reports the number of services. The shell regression success banner appears only after all checks pass.
Validation:
All 39 Python tests pass.
Shell regressions, Ruff, ShellCheck, and git diff --check pass.
New regressions fail with the previous image code and Compose counter.
All five external CI command files remain unchanged; cleanup restores environment values and removes test files.
Only test isolation, digest validation, and report wording/counts change. There are no image version changes or infrastructure deployments. PR image release jobs remain skipped; image failure and success reports are verified with isolated tests. Old reports retain their content.
Gitea CI run 1713 passed for commit 0e3035ed74a15e12c423839b707dccdf8ba8c404. All eight validation jobs passed. The rendered summary contains eight successful checks with the real SHA and no fake SHA, fake digest, test-generated image build section, or invalid test metadata. Image publication jobs are skipped for PRs; their report paths are covered by the isolated regression tests.
Unit tests inherited CI command files and wrote fake commit SHAs and image digests to the real job summary. Image reports also accepted unverified digests into the completed list, labelled one image result as a complete release, and printed character counts instead of Compose service counts.
All unit tests now redirect `GITHUB_STEP_SUMMARY`, `GITHUB_OUTPUT`, `GITHUB_ENV`, `GITHUB_PATH`, and `GITHUB_STATE` to temporary files. Cleanup restores the environment and removes the private files. A child-process regression checks that the full unit suite leaves external CI files unchanged.
The image builder checks the digest type and SHA-256 syntax before adding the image to its completed results. Per-image summaries identify the image and source commit. They state that the final build job must publish the complete release. Invalid metadata cannot appear as a completed image digest.
Compose verification now reports the number of services. The shell regression success banner appears only after all checks pass.
Validation:
- All 39 Python tests pass.
- Shell regressions, Ruff, ShellCheck, and `git diff --check` pass.
- New regressions fail with the previous image code and Compose counter.
- All five external CI command files remain unchanged; cleanup restores environment values and removes test files.
Only test isolation, digest validation, and report wording/counts change. There are no image version changes or infrastructure deployments. PR image release jobs remain skipped; image failure and success reports are verified with isolated tests. Old reports retain their content.
Gitea CI run [1713](https://git.forust.xyz/forust/homelab/actions/runs/1713) passed for commit `0e3035ed74a15e12c423839b707dccdf8ba8c404`. All eight validation jobs passed. The rendered summary contains eight successful checks with the real SHA and no fake SHA, fake digest, test-generated image build section, or invalid test metadata. Image publication jobs are skipped for PRs; their report paths are covered by the isolated regression tests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Unit tests inherited CI command files and wrote fake commit SHAs and image digests to the real job summary. Image reports also accepted unverified digests into the completed list, labelled one image result as a complete release, and printed character counts instead of Compose service counts.
All unit tests now redirect
GITHUB_STEP_SUMMARY,GITHUB_OUTPUT,GITHUB_ENV,GITHUB_PATH, andGITHUB_STATEto temporary files. Cleanup restores the environment and removes the private files. A child-process regression checks that the full unit suite leaves external CI files unchanged.The image builder checks the digest type and SHA-256 syntax before adding the image to its completed results. Per-image summaries identify the image and source commit. They state that the final build job must publish the complete release. Invalid metadata cannot appear as a completed image digest.
Compose verification now reports the number of services. The shell regression success banner appears only after all checks pass.
Validation:
git diff --checkpass.Only test isolation, digest validation, and report wording/counts change. There are no image version changes or infrastructure deployments. PR image release jobs remain skipped; image failure and success reports are verified with isolated tests. Old reports retain their content.
Gitea CI run 1713 passed for commit
0e3035ed74a15e12c423839b707dccdf8ba8c404. All eight validation jobs passed. The rendered summary contains eight successful checks with the real SHA and no fake SHA, fake digest, test-generated image build section, or invalid test metadata. Image publication jobs are skipped for PRs; their report paths are covered by the isolated regression tests.test: isolate CI summary and output filesto fix(ci): keep build and test reports accurate