The export died with no output and no dists, exit 1, having committed nothing. grep exits 1 when it matches NOTHING, and under set -euo pipefail that failing pipeline takes the script with it. Once every internal reference had already been scrubbed, the gitea grep matched nothing, and the SUCCESS case became the abort. It printed not one line explaining itself, which is what made it cost an afternoon: the run looked like it had worked. All three scrub greps are guarded now. This is the third failure of this shape in this file, after the two fetch/push tag omissions. Also excludes a stray .env copy from the sync. A hand-made .env.bak-<date> reached the publication tree, because rsync walks the WORKING TREE and .gitignore does not apply. The scrub gate caught it, which is what that gate is for, and it never reached a commit or a bundle - but a file of live credentials should not get that far. --include '.env.example' comes first so the example still publishes. Both verified by planting a violation: a no-match grep under pipefail, and a planted .env.bak file that the sync now leaves behind.
11 KiB
Executable File
11 KiB
Executable File