fix(cicd): upload .tagrc despite upload-artifact@v4 hiding dotfiles#156
Merged
Conversation
The latest prepare-release run looked successful but never uploaded the `tag-artifact` artifact. release.yml depends on it (actions/download-artifact -name tag-artifact, then `cat .tagrc` to read PENDING_TAG) — without it, the merge-to-main publish flow would fail immediately on "Download tag artifact". Root cause: actions/upload-artifact@v4 silently skips hidden files unless `include-hidden-files: true` is set; `.tagrc` (with the leading dot) is treated as hidden. The step exits "success" with only a warning in the log, so we never noticed. Fix: set `include-hidden-files: true` on the tag-artifact upload step. Verified on the failed run 25532192649: tag-artifact is missing from the artifact list while data-helpers and deployable-artifacts (both contain only non-hidden paths) uploaded fine. Inline comment in the workflow links to upload-artifact's documented hidden-file behavior so the next time we add a dotfile artifact, the gotcha is obvious. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pre-flight check on the v0.5.0-release pipeline caught a silent bug that would have blocked the actual npm publish on merge to main.
What I found
The latest
prepare-releaserun (25532192649, on develop after PR #155) reported all-green but never uploaded thetag-artifact. From its API artifact listing:Missing:
tag-artifact. Yetrelease.ymldoes, on every push to main:That step would have failed immediately, blocking the rest of the release.
Root cause
actions/upload-artifact@v4silently skips hidden files unlessinclude-hidden-files: trueis set. The path is.tagrc(leading dot → hidden). The step exits "success" with only this warning in the log — easy to miss:This is a v4 regression vs. earlier versions of the action. Other artifact uploads in the workflow (
release-notes.md,*.tgz,data-helpers.tar) are fine because they're not dotfiles.Fix
One line + comment:
include-hidden-files: trueon thetag-artifactupload step. Inline comment links toupload-artifact's documented hidden-file behavior so the next dotfile artifact doesn't trip the same wire.Verified pre-flight against the rest of release.yml
Once
tag-artifactlands, every other step works:tag-artifactzip extracts to.tagrccontainingv0.5.0-releaseis-releaseevaluatestrue→create-releasejob runsdeployable-artifactsalready uploaded correctly:release-notes.md(10885 bytes, comprehensive v0.5.0 changelog) +rocketicons-0.3.0.tgz(43MB, 331 files)name=rocketicons,version=0.3.0,engines.node=">=20"— all correctNODE_AUTH_TOKEN=secrets.NPM_TOKEN(rotated 2026-05-08, owned byamorimjjwho maintainsrocketiconson npm)After merge
PR #151 (develop → main) auto-resyncs, prepare-release runs once more, this time uploading all 3 artifacts (
tag-artifact,deployable-artifacts,data-helpers). Then merge to main is the actual publish trigger.