跳过主要内容
CI/CD

Automate Capgo Live Updates from Lovable with GitHub Actions

一键发布到生产用户:同步到GitHub,将CapgoAPI密钥存储为机密,并让GitHub Actions在每次推送时构建和上传。

文章来源

马丁·多纳迪厄

作者

Valeria

审稿人

乔丹

编辑

从可爱的Capgo中自动化GitHub实时更新

您的客户希望在可爱中有一个单独的按钮,向每个活跃用户发送更改。您已经证明了更新路径的手动工作:

npx @capgo/cli@latest bundle upload --channel=production --auto-bump

缺少的部分不是在可爱中添加另一个终端命令。 可爱无法在发布时运行Capgo。 当GitHub同步功能启用时, 发布会将一个提交推送到您的仓库. GitHub Actions会为您运行构建和 bundle upload 为了您。

乔丹 CAPGO_TOKEN 作为一个 GitHub 秘密。对于工作流文件,复制并粘贴准备好的 AI 指令到可爱的 (步骤 3)。

管道是如何工作的

步骤 谁 发生了什么
1 客户端 在Lovable中编辑应用并点击 发布
2 Lovable 提交并推送到GitHub(通常是GitHub Actions) main)
3 GitHub npm ci, npm run build, bundle upload --auto-bump Capgo
4 Capgo 设备活跃在 production 频道接收更新

无需 SSH、无需本地 CLI、无需额外点击即可完成配置。

前提条件

  • 可爱项目连接到 GitHub (导出指南)
  • Capacitor + @capgo/capacitor-updater 在仓库中 (可爱到移动指南)
  • 应用程序在 Capgo 上注册 capacitor.config.ts 指向正确的 appId
  • production 频道存在并已链接到用户运行的构建

Why --auto-bump

每次 Capgo 上载都需要一个 新的唯一的捆绑版本. Lovable Publish 不会为您增加 package.json 版本号,因此 CI 在第二次部署时会失败,如果您重用相同的版本。

--auto-bump 读取最新版本的频道(或应用)并增加它。默认级别是 minor。您可以传递 --auto-bump patch 或 --auto-bump major context

一步 1 — 创建一个 Capgo API 密钥

  1. 。您可以传递 console.capgo.app/apikeys/
  2. 创建一个具有上传应用程序包权限的API密钥
  3. 复制此密钥一次。您将无法再次看到完整的值

将此密钥视为密码。永远不要将其提交到 Git 或粘贴到 Lovable 聊天中

步骤 2 — 添加 CAPGO_TOKEN 在GitHub(唯一的环境步骤)中

这是您发送给 Kuldeep 和任何拥有仓库的客户的步骤

  1. 打开 Lovable 同步到的GitHub仓库
  2. 前往 设置 → 机密和变量 → 动作
  3. 点击 新仓库密钥
  4. 名称: CAPGO_TOKEN
  5. 值:将Capgo API步骤1中的密钥粘贴到此处
  6. 保存

GitHub将密钥注入工作流程中 ${{ secrets.CAPGO_TOKEN }}。以下工作流程将其读取为__CAPGO_KEEP_0__ __CAPGO_KEEP_1__环境变量 CAPGO_TOKEN 环境变量用于Capgo CLI。

仓库中添加密钥。您只需在__CAPGO_KEEP_0__中保存密钥,不需要在Lovable设置中保存 their 仓库。您只需要在GitHub中填入密钥,而不是在Lovable设置中。

context

context main,替换 main 在工作流程中使用你的 branch 名称。

Add Capgo Live Updates CI with GitHub Actions.

Create `.github/workflows/capgo-live-updates.yml` (create folders if needed). Start from this YAML, then adapt install/build to this project while keeping Capgo upload + CAPGO_TOKEN secret behavior:

name: Capgo Live Updates

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: '24'
          cache: 'npm'

      - name: Install and build
        run: |
          npm ci
          npm run build

      - name: Upload bundle to Capgo
        run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}

Rules:
- Do not hardcode any Capgo API key in the repo or in chat.
- The workflow must read CAPGO_TOKEN only from GitHub Actions secrets (`${{ secrets.CAPGO_TOKEN }}`).
- Keep `--auto-bump` on the upload command so each Publish gets a new unique bundle version.
- Prefer the project's real production build script from package.json (for example `npm run build` or `vite build`).
- If package-lock.json is missing, use `npm install` instead of `npm ci`.
- Do not modify app UI or Capacitor config for this task.
- Commit the workflow file so the next Publish pushes it to GitHub.

在 Lovable 应用更改后,点击 发布 以便工作流程落在 GitHub 上。

手动替代方案

如果你不想使用 Lovable 聊天,创建 .github/workflows/capgo-live-updates.yml 仅使用 YAML(不使用提示文本)。适应安装/构建步骤与上述规则相同,如果你的项目有所不同,请提交并推送。

name: Capgo Live Updates

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: '24'
          cache: 'npm'

      - name: Install and build
        run: |
          npm ci
          npm run build

      - name: Upload bundle to Capgo
        run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}

Vite base 路径: Lovable Vite 应用通常需要 base: './' 在 vite.config.ts 所以资产在本机 shell 内加载。如果用户在 OTA 更新后看到白屏,请要求 Lovable 重发并重新部署工作流。 base: './'加密包:

如果您使用 如果您使用 Capgo 加密作为第二个 CAPGO_PRIVATE_KEY GitHub 秘密,并在上传步骤中传递 --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" 步骤 4 — 确认发布触发部署

在 Lovable 中,创建一个小的可见变化(例如按钮标签文本)

  1. 点击
  2. 发布 加密包:
  3. On GitHub, 打开 Actions 并观看 Capgo 实时更新
  4. 当作业为绿色时,打开你的 Capgo 控制台 并确认新包在 production 频道
  5. 在已安装应用的设备上,确认更改已到达(可能需要一分钟,取决于频道设置)

✅ 成功: 在可爱的 → 绿色 GitHub 动作 → 新包在 Capgo → 用户收到更新。

故障排除

症状 可能原因 解决方案
工作流程从未运行 推送到其他分支 main 更改 branches 工作流程或发布到 main
CAPGO_TOKEN 认证错误 缺少或名称错误的密钥 密钥必须精确 CAPGO_TOKEN 在 Actions 密钥下
版本已存在 重新上传使用相同的捆绑包版本 保持 --auto-bump 在上传步骤(或传递) --auto-bump patch)
构建失败 npm ci 锁文件不一致 运行 npm install 在本地上传代码,提交,发布 package-lock.json上传成功,白屏
错误 或 Vite webDir 匹配 base Match capacitor.config.ts webDir 为 Vite) 并设置dist 用户无法看到更新 base: './'
设备未连接到其构建的频道 在 __CAPGO_KEEP_0__ 中将设备构建链接到 在Capgo中,連接設備建置到 production 更多工作流模式(功能分支、PR 频道、加密)请参见

__CAPGO_KEEP_0__ Actions 集成 GitHub GitHub Actions 集成.

向他们发送以下清单:

您

  1. You 已经连接了 Lovable 到 GitHub 并在移动应用中设置了 Capgo。
  2. 他们 添加一个 GitHub 秘密: CAPGO_TOKEN 使用他们的 Capgo API 密钥 (apikeys 页面).
  3. 他们 点击 发布 在 Lovable 中任何时候他们想让用户接收更新时。
  4. 他们永远不会在本地运行 npx @capgo/cli 除非他们想这样做。

这与他们要求的单击体验相符:在 Lovable 中的发布按钮是 GitHub Actions 和 Capgo 来处理剩余的工作。

继续

Capacitor 应用程序的即时更新

当 web 层 bug 活跃时,通过 Capgo 将修复推送到应用程序,而不是等待几天的应用商店审批。用户在后台接收更新,而原生更改保持在正常审批路径中。

来自马丁的人性化支持

立即开始

最新博客文章

Capgo 给您创建真正专业的移动应用所需的最佳见解。