メインコンテンツへスキップ
CI/CD

GitHub actions で開発・本番ビルドを管理する

Capgo を使って devbuild を特定の channel にリリースしましょう。Apple や Google の審査を待たずに、チームメンバーが Capacitor Ionic アプリを試せるようになります。

GitHub actions で開発用と本番用の build を管理する

このチュートリアルでは GitHub のホスティングに焦点を当てていますが、少し調整するだけで他の CI/CD プラットフォームにも応用可能です。

はじめに

まず Capacitor アプリを Capgo に追加しておいてください。このチュートリアルでは upload フェーズのみを解説します。

コミット規約

まずはコミット規約に従うことから始めましょう conventional commits` を導入することで、ツールがバージョン番号をどのようにアップグレードすべきかを理解できるようになります。習得には5分もかかりません。

Conventional commits

タグ用の GitHub actions

次に、ビルドとタグ作成を自動化するための最初の GitHub action を作成します。

以下のパスにファイルを作成してください: .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ブランチの各コミットに対してタグがリリースされます。また、 alpha 〜のリリース、 developmentそして最後に、各コミットに対する changelog エントリが作成されます。 CHANGELOG.md.

このファイルがなくても大丈夫です。自動的に作成されます。

これを実現するには、まず以下のものを作成する必要があります: パーソナルアクセストークン を作成し、GitHub の secrets as PERSONAL_ACCESS_TOKEN.

これは、CIがchangelogのコミットやバージョンの更新を行うために必要です。

トークン作成時、有効期限(expiration)は never を選択し、スコープ(scope)は repo.

の version キーを package.json ファイルに設定してください。App Storeで最後にリリースされたバージョンを使用してください。

これは初回のみ必要です。以降はツールが自動で更新します。

両方のファイルをコミットすれば、GitHub に最初のタグが表示されます!

capacitor-standard-version これが魔法を実現するパッケージです。デフォルトでは Android と iOS のバージョン番号も更新します。

ビルド用の GitHub actions

次のパスにファイルを作成してください: .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 に as CAPGO_TOKEN.

これで両方のファイルを commit すれば、Capgo に最初のバージョンが表示されます!

commit を追加すると、production と development チャネルの両方に対して新しい Capacitor build が生成されます。

code が正しく動作することを確認するために、Ionic の build ステップにテストを追加することをお勧めします。

Capgo dashboard に移動して、作成されたばかりの build を確認してください。これで CI/CD システムが整いました。

次へ:GitHub actions を使用した development と production の build 管理

使用している場合 GitHub actions を使用した development と production の build 管理 チャンネルルーティングと段階的ロールアウトを計画するには、次と組み合わせてください: チャンネル Channelsの実装の詳細については、 チャンネル Channelsの実装の詳細については、 チャンネル Channelsの実装の詳細については、 ベータテストソリューション ベータテストソリューションのプロダクトワークフロー向け、および バージョンターゲティングソリューション バージョンターゲティングソリューションのプロダクトワークフロー向け。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。