TiDB Cloud Branching(ベータ版)をGitHubと統合する
注記:
この統合はTiDB Cloudブランチに基づいています。このドキュメントを読む前に、 TiDB Cloud Branching について理解しておいてください。
アプリケーション開発に GitHub を使用する場合は、 TiDB Cloud Branching を GitHub CI/CD パイプラインに統合できます。これにより、本番データベースに影響を与えることなく、ブランチを使用してプル リクエストを自動的にテストできます。
統合プロセスでは、GitHub App TiDB Cloudブランチをインストールするよう求められます。このアプリは、GitHub リポジトリ内のプルリクエストに基づいて、 TiDB Cloud Starter またはTiDB Cloud Essential クラスターのブランチを自動的に管理できます。例えば、プルリクエストを作成すると、アプリはクラスターに対応するブランチを作成します。このブランチでは、本番のデータベースに影響を与えることなく、新機能やバグ修正に個別に取り組むことができます。
このドキュメントでは、次のトピックについて説明します。
- TiDB Cloud BranchingをGitHubと統合する方法
- TiDB Cloudブランチアプリはどのように機能しますか?
- 本番のクラスタではなくブランチを使用してすべてのプルリクエストをテストするためのブランチベースの CI ワークフローを構築する方法
始める前に
統合する前に、次のものを用意してください。
- GitHubアカウント
- アプリケーション用のGitHubリポジトリ
- A TiDB Cloud Starter またはTiDB Cloud Essential クラスター
TiDB Cloud Branching を GitHub リポジトリに統合する {#integrate-branching-with-your-github-repository}
TiDB Cloud Branching を GitHub リポジトリに統合するには、次の手順を実行します。
TiDB Cloudコンソールで、プロジェクトのクラスターページに移動し、ターゲットのTiDB Cloud Starter またはTiDB Cloud Essential クラスターの名前をクリックして、その概要ページに移動します。
左側のナビゲーション ペインで[ブランチ]をクリックします。
「ブランチ」ページの右上隅にある「GitHub に接続」をクリックします。
- GitHub にログインしていない場合は、まず GitHub にログインするように求められます。
- 統合を初めて使用する場合は、 TiDB Cloud Branchingアプリを承認するように求められます。
「GitHub に接続」ダイアログで、 「GitHub アカウント」ドロップダウン リストから GitHub アカウントを選択します。
リストに自分のアカウントが存在しない場合は、 [その他のアカウントのインストール]をクリックし、画面の指示に従ってアカウントをインストールします。
GitHubリポジトリのドロップダウンリストから対象のリポジトリを選択します。リストが長い場合は、名前を入力してリポジトリを検索できます。
「接続」をクリックして、クラスターと GitHub リポジトリを接続します。
TiDB Cloudブランチングアプリの動作
TiDB Cloud Starter またはTiDB Cloud Essential クラスタを GitHub リポジトリに接続すると、リポジトリ内のプルリクエストごとに、 TiDB Cloudブランチ GitHub App がクラスタの対応するブランチを自動的に管理できるようになります。プルリクエストの変更に対するデフォルトの動作は次のとおりです。
プルリクエストの変更 | TiDB Cloudブランチングアプリの動作 |
---|---|
プルリクエストを作成する | リポジトリにプルリクエストを作成すると、 TiDB Cloudブランチアプリがクラスター用のブランチを作成します。 branch.mode reset に設定されている場合、ブランチ名は${github_branch_name}_${pr_id} 形式に従います。 branch.mode reserve に設定されている場合、ブランチ名は${github_branch_name}_${pr_id}_${commit_sha} 形式に従います。ブランチの数には制限が付くことに注意してください。 |
新しいコミットをプルリクエストにプッシュする | branch.mode reset に設定すると、リポジトリ内のプルリクエストに新しいコミットをプッシュするたびに、 TiDB Cloudブランチアプリがブランチをリセットします。 branch.mode reserve に設定すると、アプリは最新のコミット用に新しいブランチを作成します。 |
プルリクエストをクローズまたはマージする | プル リクエストをクローズまたはマージすると、 TiDB Cloudブランチアプリによってこのプル リクエストのブランチが削除されます。 |
プルリクエストを再開する | プル リクエストを再度開くと、 TiDB Cloudブランチアプリによってプル リクエストの最後のコミットのブランチが作成されます。 |
TiDB Cloud Branchingアプリを構成する
TiDB Cloudブランチアプリの動作を構成するには、リポジトリのルート ディレクトリにtidbcloud.yml
ファイルを追加し、次の手順に従ってこのファイルに必要な構成を追加します。
ブランチ.ブロックリスト
タイプ:文字列の配列。デフォルト: []
。
allowList
内にある場合でも、 TiDB Cloud Branching アプリを禁止する GitHub ブランチを指定します。
github:
branch:
blockList:
- ".*_doc"
- ".*_blackList"
ブランチ.許可リスト
タイプ:文字列の配列。デフォルト: [.*]
。
TiDB Cloud Branching アプリを許可する GitHub ブランチを指定します。
github:
branch:
allowList:
- ".*_db"
ブランチモード
タイプ:文字列。デフォルト: reset
。
TiDB Cloud Branching アプリがブランチの更新を処理する方法を指定します。
reset
に設定すると、 TiDB Cloud Branching アプリは既存のブランチを最新のデータで更新します。reserve
に設定すると、 TiDB Cloud Branching アプリは最新のコミット用に新しいブランチを作成します。
github:
branch:
mode: reset
ブランチ.自動破棄
タイプ:ブール値。デフォルト: true
。
false
に設定すると、プル リクエストがクローズまたはマージされたときに、 TiDB Cloud Branching アプリはTiDB Cloud Starter またはTiDB Cloud Essential クラスターのブランチを削除しません。
github:
branch:
autoDestroy: true
ブランチCIワークフローを作成する
ブランチを使用するベストプラクティスの一つは、ブランチCIワークフローを作成することです。このワークフローを使用すると、プルリクエストをマージする前に、本番環境のクラスターではなく、クラスターのブランチを使用してコードをテストできます。ライブデモここご覧ください。
ワークフローを作成する主な手順は次のとおりです。
ブランチ接続情報を取得します。
tidbcloud-branch を待つアクションを使用して、ブランチの準備ができるまで待機し、ブランチの接続情報を取得できます。
TiDB Cloud Starter クラスターのブランチを例に挙げます。
steps: - name: Wait for TiDB Cloud Starter branch to be ready uses: tidbcloud/wait-for-tidbcloud-branch@v0 id: wait-for-branch with: token: ${{ secrets.GITHUB_TOKEN }} public-key: ${{ secrets.TIDB_CLOUD_API_PUBLIC_KEY }} private-key: ${{ secrets.TIDB_CLOUD_API_PRIVATE_KEY }} - name: Test with TiDB Cloud Starter branch run: | echo "The host is ${{ steps.wait-for-branch.outputs.host }}" echo "The user is ${{ steps.wait-for-branch.outputs.user }}" echo "The password is ${{ steps.wait-for-branch.outputs.password }}"token
: GitHubは自動的にGITHUB_トークンシークレットを作成します。そのまま使用できます。public-key
およびprivate-key
: TiDB CloudAPIキー 。
テストコードを変更します。
テストコードを修正し、GitHub Actionsからの接続情報を受け入れるようにします。例えば、 ライブデモに示すように、環境を通して接続情報を受け入れることができます。
次は何?
次の例を使用して、ブランチング GitHub 統合の使用方法を学習します。
ブランチング GitHub 統合を使わずに、ブランチング CI/CD ワークフローを構築することもできます。例えば、 setup-tidbcloud-cli
と GitHub Actions を使用して CI/CD ワークフローをカスタマイズできます。