feat: 添加 Homebrew 安装方式和自动更新 workflow

This commit is contained in:
coso
2026-01-09 11:50:20 +08:00
parent 3954a6224a
commit 47df08639d
5 changed files with 245 additions and 3 deletions
+104
View File
@@ -0,0 +1,104 @@
name: Update Homebrew Tap
on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: '版本号 (不带 v 前缀,如 0.37.0)'
required: true
jobs:
update-homebrew:
runs-on: macos-latest
steps:
- name: 获取版本号
id: version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
else
# 从 tag 中提取版本号,去掉 v 前缀
VERSION="${{ github.event.release.tag_name }}"
echo "version=${VERSION#v}" >> $GITHUB_OUTPUT
fi
- name: 等待 Release 资源就绪
run: sleep 30
- name: 下载 DMG 并计算 SHA256
id: sha
run: |
VERSION="${{ steps.version.outputs.version }}"
# 下载 ARM64 DMG
echo "下载 ARM64 DMG..."
curl -sL -o arm64.dmg "https://github.com/aiclientproxy/proxycast/releases/download/v${VERSION}/proxycast_${VERSION}_aarch64.dmg"
ARM64_SHA=$(shasum -a 256 arm64.dmg | awk '{print $1}')
echo "ARM64 SHA256: $ARM64_SHA"
echo "arm64_sha=$ARM64_SHA" >> $GITHUB_OUTPUT
# 下载 x64 DMG
echo "下载 x64 DMG..."
curl -sL -o x64.dmg "https://github.com/aiclientproxy/proxycast/releases/download/v${VERSION}/proxycast_${VERSION}_x64.dmg"
X64_SHA=$(shasum -a 256 x64.dmg | awk '{print $1}')
echo "x64 SHA256: $X64_SHA"
echo "x64_sha=$X64_SHA" >> $GITHUB_OUTPUT
- name: Checkout homebrew-tap
uses: actions/checkout@v4
with:
repository: aiclientproxy/homebrew-tap
token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
path: homebrew-tap
- name: 更新 Cask 文件
run: |
VERSION="${{ steps.version.outputs.version }}"
ARM64_SHA="${{ steps.sha.outputs.arm64_sha }}"
X64_SHA="${{ steps.sha.outputs.x64_sha }}"
cat > homebrew-tap/Casks/proxycast.rb << EOF
cask "proxycast" do
version "$VERSION"
on_arm do
sha256 "$ARM64_SHA"
url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/proxycast_#{version}_aarch64.dmg"
end
on_intel do
sha256 "$X64_SHA"
url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/proxycast_#{version}_x64.dmg"
end
name "ProxyCast"
desc "AI API 代理桌面应用 - 将 AI 客户端凭证转换为 OpenAI 兼容接口"
homepage "https://github.com/aiclientproxy/proxycast"
livecheck do
url :url
strategy :github_latest
end
app "ProxyCast.app"
zap trash: [
"~/.config/com.proxycast.app",
"~/Library/Application Support/com.proxycast.app",
"~/Library/Caches/com.proxycast.app",
"~/Library/Preferences/com.proxycast.app.plist",
"~/Library/Saved Application State/com.proxycast.app.savedState",
]
end
EOF
- name: 提交并推送
run: |
cd homebrew-tap
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add Casks/proxycast.rb
git commit -m "chore: bump proxycast to ${{ steps.version.outputs.version }}"
git push