feat(distribution): binary release pipeline + brew + winget
- .github/workflows/release-cli.yml: build self-contained binaries via `bun build --compile` for darwin/linux/windows × x64/arm64 on every cli-v* tag, attach to GitHub Release with SHA256SUMS, auto-bump the homebrew tap on non-prerelease versions. - packaging/homebrew/claudemesh.rb.template: formula template for the homebrew-claudemesh tap. - packaging/winget/claudemesh.yaml.template: winget manifest template. - /install script now detects absence of Node and downloads the platform-appropriate binary from the GitHub Release, installs to ~/.claudemesh/bin, and shims into ~/.local/bin — zero Node required. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
54
packaging/homebrew/claudemesh.rb.template
Normal file
54
packaging/homebrew/claudemesh.rb.template
Normal file
@@ -0,0 +1,54 @@
|
||||
# Homebrew formula template — lives in the `alezmad/homebrew-claudemesh` tap.
|
||||
#
|
||||
# The release-cli workflow bumps `version`, `url`, and `sha256` per platform
|
||||
# via `brew bump-formula-pr`. This template is the source shape — copy it
|
||||
# into the tap repo as `Formula/claudemesh.rb` when bootstrapping, then let
|
||||
# CI keep it up to date.
|
||||
|
||||
class Claudemesh < Formula
|
||||
desc "Peer mesh for Claude Code sessions"
|
||||
homepage "https://claudemesh.com"
|
||||
version "1.0.0-alpha.28"
|
||||
license "MIT"
|
||||
|
||||
on_macos do
|
||||
if Hardware::CPU.arm?
|
||||
url "https://github.com/alezmad/claudemesh/releases/download/cli-v#{version}/claudemesh-darwin-arm64"
|
||||
sha256 "REPLACED_BY_CI"
|
||||
else
|
||||
url "https://github.com/alezmad/claudemesh/releases/download/cli-v#{version}/claudemesh-darwin-x64"
|
||||
sha256 "REPLACED_BY_CI"
|
||||
end
|
||||
end
|
||||
|
||||
on_linux do
|
||||
if Hardware::CPU.arm?
|
||||
url "https://github.com/alezmad/claudemesh/releases/download/cli-v#{version}/claudemesh-linux-arm64"
|
||||
sha256 "REPLACED_BY_CI"
|
||||
else
|
||||
url "https://github.com/alezmad/claudemesh/releases/download/cli-v#{version}/claudemesh-linux-x64"
|
||||
sha256 "REPLACED_BY_CI"
|
||||
end
|
||||
end
|
||||
|
||||
def install
|
||||
bin.install Dir["*"].first => "claudemesh"
|
||||
end
|
||||
|
||||
def caveats
|
||||
<<~EOS
|
||||
To enable click-to-launch from invite emails:
|
||||
claudemesh url-handler install
|
||||
|
||||
To show live peer count in Claude Code:
|
||||
claudemesh install --status-line
|
||||
|
||||
Shell completions:
|
||||
claudemesh completions zsh > "$(brew --prefix)/share/zsh/site-functions/_claudemesh"
|
||||
EOS
|
||||
end
|
||||
|
||||
test do
|
||||
assert_match "claudemesh", shell_output("#{bin}/claudemesh --version")
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user