Add Homebrew tap auto-update to release workflow
This commit is contained in:
@@ -62,3 +62,70 @@ jobs:
|
|||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
|
|
||||||
|
update-homebrew:
|
||||||
|
name: update-homebrew
|
||||||
|
needs: publish-npm
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Get version
|
||||||
|
id: version
|
||||||
|
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Wait for npm registry propagation
|
||||||
|
run: sleep 30
|
||||||
|
|
||||||
|
- name: Get npm tarball checksum
|
||||||
|
id: checksums
|
||||||
|
run: |
|
||||||
|
VERSION="${GITHUB_REF_NAME#v}"
|
||||||
|
URL="https://registry.npmjs.org/@saiden/browse/-/browse-${VERSION}.tgz"
|
||||||
|
curl -fsSL "${URL}" -o npm-tarball.tgz
|
||||||
|
sha=$(sha256sum npm-tarball.tgz | cut -d' ' -f1)
|
||||||
|
echo "npm_sha=${sha}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Update Homebrew formula
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
SHA_NPM="${{ steps.checksums.outputs.npm_sha }}"
|
||||||
|
|
||||||
|
cat > /tmp/browse.rb <<EOF
|
||||||
|
class Browse < Formula
|
||||||
|
desc "Headless browser automation for Claude Code using Playwright WebKit"
|
||||||
|
homepage "https://github.com/saiden-dev/browse"
|
||||||
|
url "https://registry.npmjs.org/@saiden/browse/-/browse-${VERSION}.tgz"
|
||||||
|
sha256 "${SHA_NPM}"
|
||||||
|
license "MIT"
|
||||||
|
|
||||||
|
depends_on "node"
|
||||||
|
|
||||||
|
def install
|
||||||
|
system "npm", "install", *std_npm_args
|
||||||
|
bin.install_symlink Dir["#{libexec}/bin/*"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def caveats
|
||||||
|
<<~EOS
|
||||||
|
To complete installation, run:
|
||||||
|
npx playwright install webkit
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
|
||||||
|
test do
|
||||||
|
assert_match "browse", shell_output("#{bin}/browse --help")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sed -i 's/^ //' /tmp/browse.rb
|
||||||
|
|
||||||
|
CONTENT=$(base64 -w0 /tmp/browse.rb)
|
||||||
|
SHA=$(gh api repos/saiden-dev/homebrew-tap/contents/Formula/browse.rb --jq '.sha')
|
||||||
|
|
||||||
|
gh api repos/saiden-dev/homebrew-tap/contents/Formula/browse.rb \
|
||||||
|
-X PUT \
|
||||||
|
-f message="Update browse to ${VERSION}" \
|
||||||
|
-f content="${CONTENT}" \
|
||||||
|
-f sha="${SHA}"
|
||||||
|
|||||||
Reference in New Issue
Block a user