chore: update release workflows#133
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR enhances the release pipelines by making branch detection and tagging more dynamic, aligning Homebrew targets for casks, adjusting Scoop package naming for pre-releases, and conditionally applying Docker latest tags only to stable releases.
- Windows Scoop entries now toggle between
hookdeckandhookdeck-betabased on prerelease status. - Homebrew configuration converted from Formula to Cask, with added postflight hooks and caveats.
- Docker image templates and manifests in Linux only apply
latesttags when not a prerelease. - Release workflow automatically finds and checks out the correct branch for tag commits and applies proper npm tags for prereleases.
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| .goreleaser/windows.yml | Added conditional name field for Scoop package |
| .goreleaser/windows-npm.yml | Removed deprecated Windows-npm GoReleaser config |
| .goreleaser/mac.yml | Replaced Formula with Cask config, added caveats and postflight blocks |
| .goreleaser/linux.yml | Wrapped latest Docker tags in prerelease conditionals and updated manifest disabling |
| .github/workflows/release.yml | Introduced dynamic branch detection and npm tag logic |
Comments suppressed due to low confidence (3)
.goreleaser/mac.yml:54
- This line is not indented inside the
postflight doblock, so it will execute outside the custom_block and likely cause a YAML or runtime error. Please indent it under thepostflight doblock by two spaces.
bash_completion.install "hookdeck-completion.bash"
.goreleaser/linux.yml:59
- Conditionally rendering this image template will yield an empty string for prereleases, which may produce an invalid Docker tag. Consider using GoReleaser's
whencondition or removing empty entries after rendering.
- "{{ if not .Prerelease }}hookdeck/hookdeck-cli:latest-amd64{{ end }}"
.goreleaser/linux.yml:75
- Similar to the amd64 entry, this conditional can result in an empty template for prereleases and cause invalid tag entries. You might use a
whenclause or filter out empty tags in your pipeline.
- "{{ if not .Prerelease }}hookdeck/hookdeck-cli:latest-arm64{{ end }}"
…macOS and Linux jobs
…macOS, Linux, and Windows jobs
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.
Updates the release workflow to be more robust, flexible, and aligned with current best practices for npm, Homebrew, Scoop, and Docker distribution.
Dynamic Branch Releasing: The
publish-npmjob in your.github/workflows/release.ymlfile now correctly determines the branch from which a release tag was created, checks it out, and commits thepackage.jsonversion update back to that specific branch.Pre-release Tagging for npm: The workflow correctly identifies pre-release versions and assigns the appropriate distribution tag when publishing to npm, preventing pre-releases from being marked as
latest.Homebrew Cask Releases: GoReleaser configuration in
.goreleaser/mac.ymlhas been updated to build and publish Homebrew Casks instead of Formulas.Dynamic Scoop Package Naming: Windows GoReleaser configurations (
.goreleaser/windows.ymland.goreleaser/windows-npm.yml) now dynamically name the Scoop packagehookdeck-betafor pre-releases.Conditional Docker
latestTag: Your Linux GoReleaser configuration (.goreleaser/linux.yml) now only applies thelatestDocker tag to stable releases.