Skip to content

fix(ci): match unversioned DMG names in Homebrew tap workflow - #992

Merged
webadderall merged 1 commit into
webadderallorg:mainfrom
MdSahil8130:fix/homebrew-tap-dmg-asset-pattern
Sep 19, 2026
Merged

webadderall merged 1 commit into
webadderallorg:mainfrom
MdSahil8130:fix/homebrew-tap-dmg-asset-pattern

Conversation

@MdSahil8130

@MdSahil8130 MdSahil8130 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Description

The Update Homebrew Tap workflow downloads the macOS release assets with these patterns:

--pattern "Recordly-*-arm64.dmg"
--pattern "Recordly-*-x64.dmg"

These assume a version segment in the filename. But electron-builder.json5 sets:

"artifactName": "${productName}-${arch}.${ext}"

so the published assets are Recordly-arm64.dmg and Recordly-x64.dmg, with no version. The wildcard needs a hyphen on both sides, so it can never match. The same stale patterns are used again in the find calls of the Compute checksums step.

Evidence

Every recorded run of the workflow has failed. The most recent one, run 34188339726 on the v1.4.0 release, failed at step 4 Download release artifacts, with steps 5-9 skipped.

Reproduced directly against the live release:

$ gh release download v1.4.0 --pattern "Recordly-*-arm64.dmg"
no assets match the file pattern

$ gh release download v1.4.0 --pattern "Recordly-x64.dmg"
$ shasum -a 256 Recordly-x64.dmg
f478afef1c37adb8d4df9e0c0cdecde99df6f3131e34629ad3f5c3c8c226d1b5

That checksum matches SHA256SUMS.txt from the v1.4.0 release exactly, so the Compute checksums step works once the download succeeds. I also confirmed the DMG assets are unversioned on v1.4.0, v1.3.3, v1.2.1 and v1.1.14, so no release has ever matched.

Change

Uses the exact names the release publishes, in both the download patterns and the find calls. This matches the convention already used for these artifacts in scripts/verify-macos-distribution.mjs, which hardcodes ${productName}-${arch}.dmg. I kept the existing "Unable to locate macOS release artifacts" guard.

Scope: this is the first blocker, not the whole fix

To be clear about what this does not do. Fixing the pattern gets the job past step 4, but I do not expect the workflow to succeed end to end yet, because Clone tap repository should fail next: neither webadderall/homebrew-tap nor webadderallorg/homebrew-tap resolves for me via the API. The author of #541 reported the same thing. Creating or exposing the tap repo still looks necessary, and I cannot verify HOMEBREW_TAP_TOKEN from outside.

I also could not execute the workflow itself, since it needs that secret and write access to the tap. The verification above is as far as I could get externally.

Related

  • Add homebrew install for mac #171 (Add homebrew install for mac): this is a likely reason it is still open, since the automation that would publish the cask cannot get past the download step.
  • Update Homebrew cask to 1.2.1 #541 updates the checked-in recordly.rb by hand. That is treating the symptom, and the cask goes stale again on the next release while this job keeps failing. I deliberately left that file and the TAP_REPO default alone here to avoid conflicting with that PR; this PR only touches the download and checksum steps.

Question

The repo-root recordly.rb does not appear to be referenced by any workflow, script or doc, and this workflow generates its own cask inline into the tap repo's Casks/recordly.rb. Is the root file still intended to be maintained, or is it vestigial? Happy to open a follow-up either way.

Testing Guide

  • gh release download v1.4.0 --repo webadderallorg/Recordly --pattern "Recordly-x64.dmg" succeeds; the Recordly-*-x64.dmg form returns no assets match the file pattern
  • sha256 of the downloaded DMG matches the release SHA256SUMS.txt
  • Workflow YAML still parses, and all 8 steps are intact
  • npm run lint and npm test (1183 passing) clean, though this change is CI-only

Type of Change

  • Bug Fix

Checklist

  • I have performed a self-review of my code.
  • I have linked related issue(s).

Summary by CodeRabbit

  • Chores
    • Improved the macOS release packaging workflow to reliably locate the correct installation artifacts.
    • This helps ensure macOS downloads are published consistently for both supported hardware architectures.

The Update Homebrew Tap workflow downloaded the macOS release assets
with the patterns Recordly-*-arm64.dmg and Recordly-*-x64.dmg, which
assume a version segment in the filename.

electron-builder.json5 sets artifactName to "${productName}-${arch}.${ext}",
so the published assets are Recordly-arm64.dmg and Recordly-x64.dmg. The
wildcard requires a hyphen on both sides, so the patterns never matched
and "gh release download" exited with "no assets match the file pattern",
failing the job at the download step on every run.

Use the exact names the release publishes, matching the convention
already used in scripts/verify-macos-distribution.mjs.
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 2780d096-1b65-41d8-bbd8-e560f068f40a

📥 Commits

Reviewing files that changed from the base of the PR and between b3ea775 and fb5a766.

📒 Files selected for processing (1)
  • .github/workflows/homebrew-tap.yml

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The Homebrew tap workflow now downloads and checksums macOS release artifacts by using the exact filenames Recordly-arm64.dmg and Recordly-x64.dmg.

Changes

Homebrew artifact matching

Layer / File(s) Summary
Use exact DMG filenames
.github/workflows/homebrew-tap.yml
The release download and checksum steps now target Recordly-arm64.dmg and Recordly-x64.dmg instead of wildcard patterns.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to fb5a7

The workflow now downloads and checksums the published macOS artifacts correctly for both architectures.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the CI fix and specifies that it updates the Homebrew tap workflow to match unversioned DMG filenames.
Description check ✅ Passed The description clearly explains the problem, cause, scope, evidence, testing, related issues, change type, and checklist status. It does not use the template's separate Motivation heading, but the re…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@webadderall
webadderall merged commit 4992686 into webadderallorg:main Sep 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants