Skip to content

ci: fix APT publish failure and bump actions to latest majors - #252

Merged
LauJosefsen merged 1 commit into
mainfrom
ci/fix-apt-publish-and-bump-actions
Aug 10, 2026
Merged

ci: fix APT publish failure and bump actions to latest majors#252
LauJosefsen merged 1 commit into
mainfrom
ci/fix-apt-publish-and-bump-actions

Conversation

@LauJosefsen

Copy link
Copy Markdown
Collaborator

Why

The 2.1.6 release run failed in Publish to APT:

E: Failed to fetch mirror+file:/etc/apt/apt-mirrors.txt/pool/universe/r/rclone/rclone_1.60.1%2bdfsg-3ubuntu0.24.04.5_amd64.deb  404  Not Found
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

The step ran apt-get install rclone with no apt-get update, so apt asked the mirror for the rclone version baked into the runner image. Ubuntu has since published a newer one and dropped that .deb from the pool → 404 → exit 100. dpkg-dev and apt-utils were already present; only rclone needed downloading.

Fallout: the GitHub Release for 2.1.6 was created, but the APT repo never got 2.1.6 and the two Homebrew steps after it were skipped, so the formula wasn't bumped either.

What

  • apt-get update before the install in the APT publish step.

  • Bump the actions that GitHub was force-migrating off Node 20 (the release: .github#2 annotation on that run):

    action before after
    actions/checkout v4 v7
    actions/setup-go v5 v7
    actions/upload-artifact v4 v7
    actions/create-github-app-token v1 v3

    golangci/golangci-lint-action was already on the current major (v9).

One non-obvious interaction

checkout v6 moved persisted credentials out of .git/config into a separate file wired up via includeIf.gitdir:<gitdir>.path. The release job's formula push relied on git config --unset-all http.https://github.com/.extraheader to drop the GITHUB_TOKEN header before pointing origin at a URL carrying the GitHub App token — under v6+ that unset is a no-op (it's guarded by || true, so it fails silently) and the GITHUB_TOKEN Authorization header would win over the app token in the remote URL, pushing to main as the wrong identity.

Fixed at the source instead: the release job checks out with persist-credentials: false, so there is no header to unset, and the now-dead --unset-all line is removed. Nothing else in that job needs persisted git credentials — gh release create authenticates via GH_TOKEN.

Reviewer checks

Verified against upstream release notes: setup-go v6's toolchain handling change is low risk here since go.mod pins go 1.25.0 with no toolchain directive; create-github-app-token v2 dropped the underscore-style inputs but this workflow already used app-id/private-key; v3's only breaking change is proxy-related. upload-artifact v7's new archive input is opt-in.

Recovery for 2.1.6

Re-running the failed job won't help — a tag-triggered run uses the workflow file from the tagged tree, which won't contain this fix. After merge, either move the tag (git tag -f 2.1.6 && git push -f origin 2.1.6) or cut 2.1.7. The latter is cleaner given a 2.1.6 GitHub Release already exists.

🤖 Generated with Claude Code

The 2.1.6 release failed in "Publish to APT": the step installed rclone
without refreshing the package index first, so apt resolved the version
baked into the runner image (1.60.1+dfsg-3ubuntu0.24.04.5), which Ubuntu
has since removed from the pool. The download 404'd and the step exited
100, which also skipped the Homebrew formula update. Add apt-get update
before the install.

Also bump the actions that were being force-migrated off Node 20:

  actions/checkout                 v4 -> v7
  actions/setup-go                 v5 -> v7
  actions/upload-artifact          v4 -> v7
  actions/create-github-app-token  v1 -> v3

checkout v6 moved persisted credentials out of .git/config into a
separate file referenced by includeIf, so the release job's
"git config --unset-all http.https://github.com/.extraheader" no longer
removes them and the GITHUB_TOKEN header would have overridden the
GitHub App token in the formula push remote URL. Check out with
persist-credentials: false instead, which leaves no header to unset.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@LauJosefsen
LauJosefsen merged commit bb24d6d into main Aug 10, 2026
12 checks passed
@LauJosefsen
LauJosefsen deleted the ci/fix-apt-publish-and-bump-actions branch August 10, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants