mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
feat: 添加 Homebrew 安装方式和自动更新 workflow
This commit is contained in:
@@ -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
|
||||
@@ -126,11 +126,26 @@
|
||||
|
||||
### 下载安装
|
||||
|
||||
#### macOS (推荐使用 Homebrew)
|
||||
|
||||
```bash
|
||||
brew tap aiclientproxy/tap
|
||||
brew install --cask proxycast
|
||||
```
|
||||
|
||||
更新版本:
|
||||
```bash
|
||||
brew upgrade --cask proxycast
|
||||
```
|
||||
|
||||
#### 手动下载
|
||||
|
||||
从 [Releases](https://github.com/aiclientproxy/proxycast/releases) 页面下载对应平台的安装包:
|
||||
|
||||
- **macOS (Apple Silicon)**: `ProxyCast_x.x.x_aarch64.dmg`
|
||||
- **Windows (x64)**: `ProxyCast_x.x.x_x64-setup.exe`
|
||||
- **Ubuntu/Debian (x64)**: `ProxyCast_x.x.x_amd64.deb`
|
||||
- **macOS (Apple Silicon)**: `proxycast_x.x.x_aarch64.dmg`
|
||||
- **macOS (Intel)**: `proxycast_x.x.x_x64.dmg`
|
||||
- **Windows (x64)**: `proxycast_x.x.x_x64-setup.exe`
|
||||
- **Ubuntu/Debian (x64)**: `proxycast_x.x.x_amd64.deb`
|
||||
|
||||
### 使用步骤
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
cask "proxycast" do
|
||||
version "0.37.0"
|
||||
|
||||
on_arm do
|
||||
sha256 "REPLACE_WITH_ARM64_SHA256"
|
||||
url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/ProxyCast_#{version}_aarch64.dmg"
|
||||
end
|
||||
|
||||
on_intel do
|
||||
sha256 "REPLACE_WITH_X64_SHA256"
|
||||
url "https://github.com/aiclientproxy/proxycast/releases/download/v#{version}/ProxyCast_#{version}_x64.dmg"
|
||||
end
|
||||
|
||||
name "ProxyCast"
|
||||
desc "AI 代理服务桌面应用 - 多 Provider 凭证池管理"
|
||||
homepage "https://github.com/aiclientproxy/proxycast"
|
||||
|
||||
livecheck do
|
||||
url :url
|
||||
strategy :github_latest
|
||||
end
|
||||
|
||||
app "ProxyCast.app"
|
||||
|
||||
zap trash: [
|
||||
"~/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
|
||||
@@ -0,0 +1,44 @@
|
||||
# ProxyCast Homebrew Tap
|
||||
|
||||
ProxyCast 的 Homebrew Cask 分发仓库。
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
# 添加 tap
|
||||
brew tap terryso/tap
|
||||
|
||||
# 安装 ProxyCast
|
||||
brew install --cask proxycast
|
||||
```
|
||||
|
||||
## 更新
|
||||
|
||||
```bash
|
||||
brew upgrade --cask proxycast
|
||||
```
|
||||
|
||||
## 卸载
|
||||
|
||||
```bash
|
||||
brew uninstall --cask proxycast
|
||||
```
|
||||
|
||||
## 维护说明
|
||||
|
||||
### 手动更新版本
|
||||
|
||||
1. 下载新版本的 DMG 文件
|
||||
2. 计算 sha256: `shasum -a 256 ProxyCast_x.x.x_aarch64.dmg`
|
||||
3. 更新 `Casks/proxycast.rb` 中的 `version` 和 `sha256`
|
||||
4. 推送到仓库
|
||||
|
||||
### 自动化更新
|
||||
|
||||
使用 `scripts/update-cask.sh` 脚本自动更新:
|
||||
|
||||
```bash
|
||||
./scripts/update-cask.sh 0.38.0
|
||||
```
|
||||
|
||||
该脚本会自动下载 DMG、计算 sha256、更新 Cask 文件。
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# 自动更新 ProxyCast Homebrew Cask 版本
|
||||
# 用法: ./update-cask.sh <version>
|
||||
# 示例: ./update-cask.sh 0.38.0
|
||||
|
||||
set -e
|
||||
|
||||
VERSION=$1
|
||||
REPO="aiclientproxy/proxycast"
|
||||
CASK_FILE="$(dirname "$0")/../Casks/proxycast.rb"
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "用法: $0 <version>"
|
||||
echo "示例: $0 0.38.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔄 更新 ProxyCast Cask 到版本 $VERSION"
|
||||
|
||||
# 下载 DMG 并计算 sha256
|
||||
ARM64_URL="https://github.com/$REPO/releases/download/v$VERSION/ProxyCast_${VERSION}_aarch64.dmg"
|
||||
X64_URL="https://github.com/$REPO/releases/download/v$VERSION/ProxyCast_${VERSION}_x64.dmg"
|
||||
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
trap "rm -rf $TEMP_DIR" EXIT
|
||||
|
||||
echo "📥 下载 ARM64 DMG..."
|
||||
curl -sL "$ARM64_URL" -o "$TEMP_DIR/arm64.dmg"
|
||||
ARM64_SHA=$(shasum -a 256 "$TEMP_DIR/arm64.dmg" | awk '{print $1}')
|
||||
echo " SHA256: $ARM64_SHA"
|
||||
|
||||
echo "📥 下载 x64 DMG..."
|
||||
curl -sL "$X64_URL" -o "$TEMP_DIR/x64.dmg"
|
||||
X64_SHA=$(shasum -a 256 "$TEMP_DIR/x64.dmg" | awk '{print $1}')
|
||||
echo " SHA256: $X64_SHA"
|
||||
|
||||
# 更新 Cask 文件
|
||||
echo "📝 更新 Cask 文件..."
|
||||
sed -i '' "s/version \".*\"/version \"$VERSION\"/" "$CASK_FILE"
|
||||
sed -i '' "/on_arm do/,/end/ s/sha256 \".*\"/sha256 \"$ARM64_SHA\"/" "$CASK_FILE"
|
||||
sed -i '' "/on_intel do/,/end/ s/sha256 \".*\"/sha256 \"$X64_SHA\"/" "$CASK_FILE"
|
||||
|
||||
echo "✅ 更新完成!"
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo " 1. git add Casks/proxycast.rb"
|
||||
echo " 2. git commit -m 'chore: bump proxycast to $VERSION'"
|
||||
echo " 3. git push"
|
||||
Reference in New Issue
Block a user