跳过主要内容
CI/CD

自动构建和发布应用程序使用 Github 动作

使用 Github 动作免费创建您的 CI/CD pipeline,并在每次推送到主分支时部署您的 Ionic Capacitor JS 应用程序。

马丁·多纳迪尤

马丁·多纳迪尤

内容营销人员

自动构建和发布应用程序使用 Github 动作

本教程重点介绍了 GitHub 主机托管,但您可以轻松适应任何其他 CI/CD 平台。

序言

确保您已在 Capgo 中添加了您的 Capacitor 应用程序本教程仅关注上传阶段。 如果您需要将应用程序添加到 Capgo 中,请遵循以下步骤 教程

提交约定

首先,您需要遵循提交约定 规范提交` 这将有助于工具理解如何升级版本号,学习时间仅 5 分钟。

规范提交

GitHub 动作标签

然后您需要创建第一个 GitHub 动作来自动构建和创建标签。

在此路径创建一个文件: .github/workflows/bump_version.yml

与此内容:

name: Bump version

on:
  push:
    branches:
      - main

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
        run: npx capacitor-standard-version
      - 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

这将为您的主 branch 中的每个提交发布一个标签。并为主 branch 中的每个提交添加一个 changelog 条目。 CHANGELOG.md.

如果您没有这个文件,别担心,它将为您创建。

要使其工作,请创建一个 个人访问令牌 并将其添加到您的 GitHub 秘密 作为 PERSONAL_ACCESS_TOKEN.

这有必要让 CI 提交 changelog。

当您创建令牌时,请选择 never 并将范围设置为 repo.

最后一步,请在你的 package.json 文件中设置版本号,同步它与你的原生版本号,这样会方便下一步的操作。

这只需要在第一次执行时,之后工具会自动更新。

你可以现在提交这两个文件并看到你的第一个标签出现在GitHub中!

原生和web平台都会在每次提交后更新版本号。

GitHub构建动作

在这个路径创建一个文件: .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 run build
        env: # Remove both lines  if you don't need it
          FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} # Example of env var coming from a secret
      - name: Create Release
        id: create_release
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

这会在发送到Capgo之前安装和构建你的依赖。

如果你的构建命令不同,你可以在 build_code 步骤中进行修改。

为了使其工作,你需要获取你的API密钥并将其添加到Capgo中 GitHub 的秘密仓库 as CAPGO_TOKEN.

现在你可以同时提交这两个文件并在 GitHub 中看到你的第一个标签!

添加此次提交将为生产渠道生成一个新的构建。

你应该在构建步骤中添加你的测试,以确保你的 code 正常工作。

前往你的 Capgo 控制台,检查刚刚出现的构建,你现在已经拥有了你的 CI/CD 系统。

如果你想让所有用户在更新可用时都能获得更新,请前往你的渠道并设置为 public.

你也可以通过遵循这个教程 👇 来添加你的 Ionic Capacitor JavaScript 应用的原生构建

继续使用自动构建和发布应用程序的 Github 动作

如果你正在使用 自动构建和发布应用程序的 Github 动作 来规划 CI/CD 自动化,连接它 Capgo CI/CD 为产品工作流程在 Capgo CI/CD 中 Capgo 原生构建 为产品工作流程在 Capgo 原生构建 中 Capgo 集成 为产品工作流程在 Capgo 集成 中 CI/CD 集成 CI/CD 集成的实现细节 GitHub 动作集成 在 GitHub 动作集成 的实现细节

Capacitor 应用的实时更新

当 web 层面的 bug 在线时,通过 Capgo 将修复推送给用户,而不是等待几天的 app store 审批。用户在后台接收更新,而原生变化仍然在正常的审批路径中。

立即开始

最新博客文章

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