https://github.com/toolsetlink/upgradelink-action
upgradelink-action
https://github.com/toolsetlink/upgradelink-action
Last synced: 27 days ago
JSON representation
upgradelink-action
- Host: GitHub
- URL: https://github.com/toolsetlink/upgradelink-action
- Owner: toolsetlink
- Created: 2025-06-01T13:46:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-09T09:51:49.000Z (about 1 year ago)
- Last Synced: 2025-06-09T10:28:47.040Z (about 1 year ago)
- Language: Python
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# UpgradeLink Action
**UpgradeLink** - [全端支持,一站式应用升级分发平台及解决方案](http://upgrade.toolsetlink.com/)
## 项目简介
此项目为开源的 Tauri 项目,用于快速接入 UpgradeLink 服务。通过在 GitHub Action 中引入此模块,可自动将生成的版本文件和升级任务配置到 UpgradeLink 系统,无需额外手动操作。
## 功能特性
- 自动上传 Tauri 应用的版本信息到 UpgradeLink 平台
- 支持通过 GitHub Action 工作流集成
- 安全的密钥管理(通过 GitHub Secrets)
- 简化应用升级配置流程
- 支持多种应用类型:Tauri、文件、APK
## 快速开始
### 1. 准备工作
在开始之前,您需要:
1. 在 [UpgradeLink](http://upgrade.toolsetlink.com/) 平台注册并创建应用
2. 获取应用的 `ACCESS_KEY` 和 `ACCESS_SECRET`
3. 获取应用的 `APP_KEY`(即应用在 UpgradeLink 平台的应用唯一标识)
4. 确保您的项目已配置自动生成版本信息文件(如 Tauri 应用的 `latest.json`)
### 2. 配置 GitHub Secrets
在您的 GitHub 仓库中,前往 **Settings > Secrets and variables > Actions**,添加以下密钥:
| 密钥名称 | 描述 | 获取方式 |
|---------|------|--------|
| `UPGRADE_LINK_ACCESS_KEY` | UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |
| `UPGRADE_LINK_ACCESS_SECRET` | UpgradeLink 平台的访问密钥 | 在 UpgradeLink 平台创建应用后获取 |
| `UPGRADE_LINK_APP_KEY` | 应用在 UpgradeLink 平台的唯一标识 | 在 UpgradeLink 平台创建应用后获取 |
### 3. 配置 GitHub Action 工作流
在您的项目中创建或修改 `.github/workflows` 目录下的工作流文件,例如 `.github/workflows/release.yml`:
```yaml
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` |
## config 字段详细说明
### 基本结构
```json
{
"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 对应的请求参数
#### 1. app_type: "tauri"
```json
{
"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` |
#### 2. app_type: "file"
```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 修复` |
#### 3. app_type: "apk"
```json
{
"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 修复` |
## 完整使用示例
### 示例 1:基本配置(Tauri 应用)
以下是一个基本的 GitHub Action 工作流配置示例,用于 Tauri 应用:
```yaml
- 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"
}
}
```
### 示例 2:文件应用(app_type: "file")
以下是一个用于文件应用的配置示例:
```yaml
- 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 修复"
}
}
```
### 示例 3:APK 应用(app_type: "apk")
以下是一个用于 APK 应用的配置示例:
```yaml
- 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 修复"
}
}
```
### 示例 4:自定义 API 端点
如果您需要使用自定义的 API 端点,可以修改 `protocol` 和 `endpoint` 参数:
```yaml
- 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"
}
}
```
## 常见问题与解决方案
### 1. `latest.json` 文件不存在
**问题**:Action 执行失败,提示找不到 `latest.json` 文件。
**解决方案**:
- 验证发布的资产中是否包含 `latest.json` 文件
### 2. API 调用失败
**问题**:Action 执行失败,提示 API 调用失败。
**解决方案**:
- 检查 `UPGRADE_LINK_ACCESS_KEY`、`UPGRADE_LINK_ACCESS_SECRET` 和 `UPGRADE_LINK_APP_KEY` 是否正确配置
- 确保网络连接正常,GitHub Actions 能够访问 UpgradeLink API
### 3. 密钥配置错误
**问题**:Action 执行失败,提示密钥错误。
**解决方案**:
- 确认在 GitHub Secrets 中正确配置了所有必需的密钥
- 检查密钥名称是否与工作流文件中引用的名称一致
- 验证密钥值是否正确,没有多余的空格或特殊字符
### 4. config JSON 格式错误
**问题**:Action 执行失败,提示无法解析 config JSON。
**解决方案**:
- 确保 config 字段是有效的 JSON 字符串
- 检查 JSON 格式是否正确,包括引号、逗号等
- 确保 JSON 字符串在 YAML 文件中正确转义
### 5. app_type 字段错误
**问题**:Action 执行失败,提示 app_type 错误。
**解决方案**:
- 确保在 config 中包含 app_type 字段
- 验证 app_type 值是否为有效的选项之一:tauri、file、apk
## 最佳实践
1. **使用版本标签**:建议使用语义化版本号(如 `v1.0.0`)作为标签,便于管理和追踪版本
2. **配置依赖关系**:确保 `upgradeLink-upload` 作业依赖于构建/发布作业完成,避免在构建完成前尝试上传
3. **使用环境变量**:对于不同环境(如开发、测试、生产),可以配置不同的密钥和参数
4. **添加错误处理**:在工作流中添加适当的错误处理,确保即使上传失败也能通知相关人员
5. **定期更新**:定期更新 Action 版本,以获取最新功能和安全修复
## 故障排除
如果您遇到问题,可以通过以下步骤进行排查:
1. **查看 Action 日志**:在 GitHub 仓库的 **Actions** 标签页中查看详细的执行日志
2. **验证参数配置**:检查所有参数是否正确配置,特别是 `config` 字段的 JSON 格式是否正确
3. **测试 API 连接**:手动测试 UpgradeLink API 是否可以正常访问
4. **检查 UpgradeLink 平台**:登录 UpgradeLink 平台,查看应用状态和日志
## 示例项目
- [tauri-demo](http://upgrade.toolsetlink.com/) - 官方示例项目,展示完整的集成配置
## 支持与反馈
如果您在使用过程中遇到问题或有任何建议,欢迎通过以下方式联系我们:
- [GitHub Issues](https://github.com/toolsetlink/upgradelink-action/issues)
- [UpgradeLink 官方网站](http://upgrade.toolsetlink.com/)