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
|
||||
31
packaging/winget/claudemesh.yaml.template
Normal file
31
packaging/winget/claudemesh.yaml.template
Normal file
@@ -0,0 +1,31 @@
|
||||
# winget manifest template for claudemesh.
|
||||
# Submit via PR to microsoft/winget-pkgs after each non-prerelease cli-v* tag.
|
||||
# The release-cli workflow can automate this with a wingetcreate step.
|
||||
|
||||
PackageIdentifier: Claudemesh.Claudemesh
|
||||
PackageVersion: 1.0.0
|
||||
PackageName: Claudemesh
|
||||
Publisher: Alejandro Gutierrez
|
||||
License: MIT
|
||||
LicenseUrl: https://github.com/alezmad/claudemesh/blob/main/LICENSE
|
||||
ShortDescription: Peer mesh for Claude Code sessions
|
||||
Description: |-
|
||||
Claudemesh connects multiple Claude Code sessions into a peer mesh.
|
||||
End-to-end encrypted, keys stay on your machine. Invite, share state,
|
||||
verify safety numbers, back up encrypted configs.
|
||||
Moniker: claudemesh
|
||||
Tags:
|
||||
- claude
|
||||
- cli
|
||||
- mesh
|
||||
- ai
|
||||
- developer-tools
|
||||
Installers:
|
||||
- Architecture: x64
|
||||
InstallerType: portable
|
||||
InstallerUrl: https://github.com/alezmad/claudemesh/releases/download/cli-v{{version}}/claudemesh-windows-x64.exe
|
||||
InstallerSha256: REPLACED_BY_CI
|
||||
Commands:
|
||||
- claudemesh
|
||||
ManifestType: singleton
|
||||
ManifestVersion: 1.6.0
|
||||
Reference in New Issue
Block a user