本教程聚焦于 GitHub 托管,但稍作调整即可适配任何其他 CI/CD 平台。
前言
请确保先将你的 Capacitor 应用添加到 Capgo,本教程只聚焦上传阶段
Commit 规范
首先,你需要开始遵循 commit 规范 约定式提交 (conventional commits)` 这将帮助工具链理解如何升级版本号,学会它只需 5 分钟。

用于 tag 的 GitHub actions
接下来,你需要创建第一个 GitHub action,以实现自动 build 并创建 tag。
在此路径下创建文件: .github/workflows/bump_version.yml
内容如下:
name: Bump version
on:
push:
branches:
- main
- development
jobs:
bump-version:
if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
runs-on: ubuntu-latest
name: "Bump version and create changelog with standard version"
steps:
- name: Check out
uses: actions/checkout@v6
with:
fetch-depth: 0
filter: blob:none
token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
- name: Git config
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
- name: Create bump and changelog
if: github.ref == 'refs/heads/main'
run: npx capacitor-standard-version
- name: Create bump and changelog
if: github.ref != 'refs/heads/main'
run: npx capacitor-standard-version --prerelease alpha
- name: Push to origin
run: |
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
remote_repo="https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
git pull $remote_repo $CURRENT_BRANCH
git push $remote_repo HEAD:$CURRENT_BRANCH --follow-tags --tags
这将为 main 分支的每次 commit 发布一个 tag,并生成一个 alpha release, development最后,为该分支的每次 commit 生成一条 changelog 条目。 CHANGELOG.md.
如果你没有这个文件,别担心,它会自动为你创建。
要实现此功能,你需要创建一个 个人访问令牌 (PERSONAL ACCESS TOKEN) 并将其添加到你的 GitHub secrets 命名为 PERSONAL_ACCESS_TOKEN.
这是为了让 CI 能够提交 changelog 并进行版本号更新。
创建令牌时,请将有效期设置为 never 并将权限范围 (scope) 设置为 repo.
在你的 version 中设置 package.json 键。请使用应用商店中发布的最新版本号。
这仅在第一次时需要,之后工具会自动保持更新。
现在你可以提交这两个文件,并在 GitHub 中看到你的第一个 tag 了!
capacitor-standard-version 是负责实现这一功能的 package,默认情况下它还会更新 Android 和 iOS 的版本号
GitHub 的构建 action
在此路径下创建文件: .github/workflows/build.yml
内容如下:
name: Build source code and send to Capgo
on:
push:
tags:
- '*'
jobs:
deploy:
runs-on: ubuntu-latest
name: "Build code and release"
steps:
- name: Check out
uses: actions/checkout@v6
- name: Install dependencies
id: install_code
run: npm i
- name: Build
id: build_code
run: npm build
env:
MY_ENV_VAR: ${{ secrets.MY_ENV_VAR }}
- name: Create Release Alpha
if: "contains(github.ref, '-alpha.')"
id: create_release_prepro
run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c development
- name: Create Release Production
if: "!contains(github.ref, '-alpha.')"
id: create_release_prod
run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production
这会在发送到 Capgo 之前,先安装并构建你的依赖。
如果你的构建命令不同,可以在 build_code 步骤中修改。
如果需要环境变量,请使用 MY_ENV_VAR 并设置 secret 在你的 GitHub 项目设置中,然后选择 secret,再选择 GitHub Action。
要让 Capgo upload 正常工作,你需要获取 Capgo 的 API 密钥,并把它添加到 你的 GitHub 仓库的 secret 中, 命名为 CAPGO_TOKEN.
现在你可以提交这两个文件,并在 Capgo 中看到你的第一个版本了!
添加这个 commit 会为 production 和 development channel 生成新的 Capacitor build。
你应该在 Ionic build 步骤中加入测试,确保你的 code 正常工作。
前往你的 Capgo dashboard 查看刚刚生成的 build,你现在已经拥有了自己的 CI/CD 系统。
继续阅读:使用 GitHub actions 管理 development 和 production build
如果你正在使用 使用 GitHub Actions 管理开发与生产环境构建 要规划 Channel 路由和分阶段发布,请将其与 通道 有关 Channels 的实现细节, 通道 有关 Channels 的实现细节, 通道 有关 Channels 的实现细节, Beta 测试解决方案 适用于 Beta Testing Solution 产品工作流的,以及 版本定向解决方案 适用于 Version Targeting Solution 产品工作流的。