UpgradeLink - 全端支持,一站式应用升级分发平台及解决方案
此项目为开源的 Tauri 项目,用于快速接入 UpgradeLink 服务。通过在 GitHub Action 中引入此模块,可自动将生成的版本文件和升级任务配置到 UpgradeLink 系统,无需额外手动操作。
- 自动上传 Tauri 应用的版本信息到 UpgradeLink 平台
- 支持通过 GitHub Action 工作流集成
- 安全的密钥管理(通过 GitHub Secrets)
- 简化应用升级配置流程
- 支持多种应用类型:Tauri、文件、APK
在开始之前,您需要:
- 在 UpgradeLink 平台注册并创建应用
- 获取应用的
ACCESS_KEY和ACCESS_SECRET - 获取应用的
APP_KEY(即应用在 UpgradeLink 平台的应用唯一标识) - 确保您的项目已配置自动生成版本信息文件(如 Tauri 应用的
latest.json)
在您的 GitHub 仓库中,前往 Settings > Secrets and variables > Actions,添加以下密钥:
| 密钥名称 | 描述 | 获取方式 |
|---|---|---|
UPGRADE_LINK_ACCESS_KEY |
UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |
UPGRADE_LINK_ACCESS_SECRET |
UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |
UPGRADE_LINK_APP_KEY |
应用在 UpgradeLink 平台的唯一标识 | 在 UpgradeLink 平台创建应用后获取 |
在您的项目中创建或修改 .github/workflows 目录下的工作流文件,例如 .github/workflows/release.yml:
upgradeLink-upload:
needs: publish-tauri # 依赖于 上游 作业完成,可进行调整
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Send a request to UpgradeLink
uses: toolsetlink/upgradelink-action@3.0.2
with:
# protocol: 'HTTPS' # 此字段为可选,默认值为 HTTPS
# endpoint: 'api.upgrade.toolsetlink.com' # 此字段为可选,默认值为 api.upgrade.toolsetlink.com
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "tauri",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_APP_KEY }}",
"latest_json_url": "https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/${{ github.ref_name }}/latest.json"
}
}| 参数 | 描述 | 示例值 |
|---|---|---|
access_key |
在 UpgradeLink 平台创建应用后生成的访问密钥 | your-access-key-here |
access_secret |
在 UpgradeLink 平台创建应用后生成的访问密钥 | your-access-secret-here |
config |
包含应用配置的 JSON 字符串,必须包含 appType 字段和 request 对象 |
{"appType": "tauri", "request": {"app_key": "your-app-key", "latest_json_url": "https://github.com/your-username/your-repo/releases/download/v1.0.0/latest.json"}} |
| 参数 | 描述 | 默认值 |
|---|---|---|
protocol |
API 调用协议 | HTTPS |
endpoint |
API 端点地址 | api.upgrade.toolsetlink.com |
{
"app_type": "tauri", // 必选值:tauri、file、apk
"request": {
"app_key": "YOUR_APP_KEY",
// 其他请求参数,根据 app_type 不同而不同
}
}| 字段 | 描述 | 可选值 | 是否必填 |
|---|---|---|---|
app_type |
应用类型,用于决定调用哪个接口 | tauri、file、apk | 是 |
request.app_key |
应用在 UpgradeLink 平台的唯一标识 | - | 是 |
{
"app_type": "tauri",
"request": {
"app_key": "YOUR_APP_KEY",
"latest_json_url": "YOUR_LATEST_JSON_URL"
}
}| 字段 | 描述 | 示例值 |
|---|---|---|
request.latest_json_url |
Tauri 应用版本信息的 JSON 文件 URL(通常为 Tauri 打包生成的 latest.json) |
https://github.com/your-username/your-repo/releases/download/v1.0.0/latest.json |
{
"app_type": "file",
"request": {
"app_key": "YOUR_APP_KEY",
"version": "YOUR_VERSION",
"url": "YOUR_FILE_URL",
"prompt_upgrade_content": "YOUR_PROMPT_UPGRADE_CONTENT"
}
}| 字段 | 描述 | 示例值 |
|---|---|---|
request.version |
文件版本号 | 1.0.0 |
request.url |
文件下载 URL | https://github.com/your-username/your-repo/releases/download/v1.0.0/app.zip |
request.prompt_upgrade_content |
升级提示内容 | 新版本已发布,包含重要功能更新和 bug 修复 |
{
"app_type": "apk",
"request": {
"app_key": "YOUR_APP_KEY",
"version": "YOUR_VERSION",
"url": "YOUR_APK_URL",
"prompt_upgrade_content": "YOUR_PROMPT_UPGRADE_CONTENT"
}
}| 字段 | 描述 | 示例值 |
|---|---|---|
request.version |
APK 版本号 | 1.0.0 |
request.url |
APK 文件下载 URL | https://github.com/your-username/your-repo/releases/download/v1.0.0/app.apk |
request.prompt_upgrade_content |
升级提示内容 | 新版本已发布,包含重要功能更新和 bug 修复 |
以下是一个基本的 GitHub Action 工作流配置示例,用于 Tauri 应用:
- name: Configure UpgradeLink
uses: toolsetlink/upgradelink-action@3.0.2
with:
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "tauri",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_APP_KEY }}",
"latest_json_url": "https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/app-v${{ github.sha }}/latest.json"
}
}以下是一个用于文件应用的配置示例:
- name: Configure UpgradeLink for File app
uses: toolsetlink/upgradelink-action@3.0.2
with:
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "file",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_APP_KEY }}",
"version": "1.0.0",
"url": "https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/app.zip",
"prompt_upgrade_content": "新版本已发布,包含重要功能更新和 bug 修复"
}
}以下是一个用于 APK 应用的配置示例:
- name: Configure UpgradeLink for APK app
uses: toolsetlink/upgradelink-action@3.0.2
with:
protocol: 'HTTPS'
endpoint: 'api.upgrade.toolsetlink.com'
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "apk",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_APP_KEY }}",
"version": "1.0.0",
"url": "https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/app.apk",
"prompt_upgrade_content": "新版本已发布,包含重要功能更新和 bug 修复"
}
}如果您需要使用自定义的 API 端点,可以修改 protocol 和 endpoint 参数:
- name: Configure UpgradeLink with custom endpoint
uses: toolsetlink/upgradelink-action@3.0.2
with:
protocol: 'HTTPS'
endpoint: 'custom-api.example.com'
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "tauri",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_APP_KEY }}",
"latest_json_url": "https://github.com/YOUR_USERNAME/YOUR_REPO/releases/download/v1.0.0/latest.json"
}
}问题:Action 执行失败,提示找不到 latest.json 文件。
解决方案:
- 验证发布的资产中是否包含
latest.json文件
问题:Action 执行失败,提示 API 调用失败。
解决方案:
- 检查
UPGRADE_LINK_ACCESS_KEY、UPGRADE_LINK_ACCESS_SECRET和UPGRADE_LINK_APP_KEY是否正确配置 - 确保网络连接正常,GitHub Actions 能够访问 UpgradeLink API
问题:Action 执行失败,提示密钥错误。
解决方案:
- 确认在 GitHub Secrets 中正确配置了所有必需的密钥
- 检查密钥名称是否与工作流文件中引用的名称一致
- 验证密钥值是否正确,没有多余的空格或特殊字符
问题:Action 执行失败,提示无法解析 config JSON。
解决方案:
- 确保 config 字段是有效的 JSON 字符串
- 检查 JSON 格式是否正确,包括引号、逗号等
- 确保 JSON 字符串在 YAML 文件中正确转义
问题:Action 执行失败,提示 app_type 错误。
解决方案:
- 确保在 config 中包含 app_type 字段
- 验证 app_type 值是否为有效的选项之一:tauri、file、apk
-
使用版本标签:建议使用语义化版本号(如
v1.0.0)作为标签,便于管理和追踪版本 -
配置依赖关系:确保
upgradeLink-upload作业依赖于构建/发布作业完成,避免在构建完成前尝试上传 -
使用环境变量:对于不同环境(如开发、测试、生产),可以配置不同的密钥和参数
-
添加错误处理:在工作流中添加适当的错误处理,确保即使上传失败也能通知相关人员
-
定期更新:定期更新 Action 版本,以获取最新功能和安全修复
如果您遇到问题,可以通过以下步骤进行排查:
-
查看 Action 日志:在 GitHub 仓库的 Actions 标签页中查看详细的执行日志
-
验证参数配置:检查所有参数是否正确配置,特别是
config字段的 JSON 格式是否正确 -
测试 API 连接:手动测试 UpgradeLink API 是否可以正常访问
-
检查 UpgradeLink 平台:登录 UpgradeLink 平台,查看应用状态和日志
- tauri-demo - 官方示例项目,展示完整的集成配置
如果您在使用过程中遇到问题或有任何建议,欢迎通过以下方式联系我们: