跳过主内容
CI/CD

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

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

马丁·多纳迪厄

马丁·多纳迪厄

内容营销人员

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

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

序言

Be sure you have added your Capacitor app first to Capgo, this tutorial just focuses on the upload phase. If you need to add your app to Capgo, you can follow this 教程

提交规范

首先,您需要遵循提交规范 规范提交` 这将有助于工具了解如何升级版本号,学习它只需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

这将为每个主分支的提交发布一个标签,并为每个主分支的提交添加一个更改日志条目。 CHANGELOG.md.

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

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

这有必要让CI能够提交changelog。

当您创建令牌时,请选择过期时间为 never 并选择范围为 repo.

最后,设置您的 package.json 文件中的版本号,同步它与您的本机版本号,这将有助于,然后下一步。

这只在第一次必要,之后工具将自动更新。

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

两种平台(native 和 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 为了使其工作,您需要获取您的 __CAPGO_KEEP_0__ 密钥并将其添加到您的 __CAPGO_KEEP_1__ 的密钥中,然后将其添加到您的 __CAPGO_KEEP_0__ 仓库的密钥中。

To make this work, you need to get your API key for Capgo, add it in the secret of your GitHub repository 为了使其工作,您需要获取您的 __CAPGO_KEEP_0__ 密钥并将其添加到您的 __CAPGO_KEEP_1__ 的密钥中,然后将其添加到您的 __CAPGO_KEEP_0__ 仓库的密钥中。 CAPGO_TOKEN.

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

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

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

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

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

您还可以通过遵循此教程添加您的IonicCapacitorJavaScript应用的原生构建👇

Capacitor 应用实时更新

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

立即开始

最新博客文章

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