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

GitLabによるビルドとリリースの自動化

GitLabを使って独自のCI/CDパイプラインを無料で構築しましょう。mainブランチへのpushのたびに、アプリを自動デプロイできます。

GitLabによるビルドとリリースの自動化

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

はじめに

まずアプリを Capgo に追加しておいてください。このチュートリアルではアップロード工程のみを解説します。

コミット規約

まずはコミット規約に従う必要があります conventional commits` を導入することで、ツールがバージョン番号を自動更新できるようになります。習得は5分で完了します。

Conventional Commits

タグ作成用の GitLab CI

次に、自動ビルドとタグ作成を行うための最初の GitLab 設定を行います。

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

これにより、main ブランチへの各コミットに対してタグがリリースされます。また、main ブランチの各コミット内容が以下に changelog として追加されます: CHANGELOG.md.

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

これを機能させるには、以下を作成してください: パーソナルアクセストークン そして、それを GitLab CI/CD の変数に次のように追加します: PERSONAL_ACCESS_TOKEN.

これは、CI が changelog をコミットするために必要です。

トークンを作成する際は、有効期限を never スコープを repo.

最後に、ツールにバージョンの保存場所を認識させるため、以下のファイルを作成する必要があります: .cz.toml リポジトリのルートに配置してください。

そして、その中に以下を記述します:

[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "$major.$minor.$patch$prerelease"
version = "0.11.5"
version_files = [
    "package.json:version",
    ".cz.toml"
]

このファイルのバージョンを、使用している package.json ファイル。

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

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

ビルド用の 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 用の API キーを取得し、 GitHub リポジトリの secret に追加する必要があります。 として CAPGO_TOKEN.

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

追加してください。コミットすると、production チャネルの新しいビルドが生成されます。

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

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

すべてのユーザーが利用可能になった時点でアップデートを受け取れるようにするには、チャンネルに移動して次のように設定してください: public.

GitLab を使った自動ビルドとリリースの続きはこちら

使用している場合 GitLabによるビルドとリリースの自動化 CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitHub Actions 連携 GitHub Actions Integrationの実装詳細については。

Capacitor アプリ向けの Live Updates

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

最新のブログ記事

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