TiDB Cloud Branching(ベータ版)とGitHubの統合
注記:
この統合はTiDB Cloud Branchingベースに構築されています。このドキュメントを読む前に、 TiDB Cloud Branching について理解していることを確認してください。
アプリケーション開発にGitHubを使用している場合、 TiDB Cloud BranchingをGitHubのCI/CDパイプラインに統合することで、本番データベースに影響を与えることなく、ブランチを使用したプルリクエストを自動的にテストできます。
統合プロセスでは、 TiDB Cloud BranchingGitHub アプリのインストールを求められます。このアプリは、GitHub リポジトリのプルリクエストに基づいて、 TiDB Cloud Starterインスタンスのブランチを自動的に管理できます。たとえば、プルリクエストを作成すると、アプリはTiDB Cloud Starterインスタンスに対応するブランチを作成します。このブランチでは、本番データベースに影響を与えることなく、新機能の開発やバグ修正を個別に行うことができます。
この文書では、以下のトピックについて説明します。
- TiDB Cloud BranchingをGitHubと統合する方法
- TiDB Cloud Branchingアプリはどのように動作しますか?
- 本番のTiDB Cloud Starterインスタンスではなく、ブランチを使用してすべてのプルリクエストをテストするブランチベースのCIワークフローを構築する方法
始める前に
統合を行う前に、以下のものがすべて揃っていることを確認してください。
- GitHubアカウント
- アプリケーション用のGitHubリポジトリ
- TiDB Cloud Starterインスタンス
TiDB Cloud BranchingをGitHubリポジトリと統合する
TiDB Cloud BranchingをGitHubリポジトリと統合するには、以下の手順に従ってください。
TiDB Cloudコンソールで、私のTiDBページに移動し、ターゲットのTiDB Cloud Starterインスタンスの名前をクリックして、その概要ページに移動します。
左側のナビゲーションペインで「支店」をクリックします。
ブランチページの右上隅にある「GitHubに接続」をクリックします。
- GitHubにログインしていない場合は、まずGitHubにログインするよう求められます。
- 初めてこの連携機能を使用する場合は、 TiDB Cloud Branchingアプリの認証を求められます。
「GitHubに接続」ダイアログで、 「GitHubアカウント」ドロップダウンリストからGitHubアカウントを選択します。
リストにあなたのアカウントが存在しない場合は、 「他のアカウントをインストール」をクリックし、画面の指示に従ってアカウントをインストールしてください。
GitHubリポジトリのドロップダウンリストから、対象のリポジトリを選択してください。リストが長い場合は、リポジトリ名を入力して検索することもできます。
「接続」をクリックすると、 TiDB Cloud StarterインスタンスとGitHubリポジトリが接続されます。
TiDB Cloud Branchingアプリの動作
TiDB Cloud Starterインスタンスを GitHub リポジトリに接続すると、このリポジトリ内の各プルリクエストに対して、 TiDB Cloud BranchingGitHub アプリは、 TiDB Cloud Starterインスタンスに対応するブランチを自動的に管理できます。プルリクエストの変更に関するデフォルトの動作は次のとおりです。
TiDB Cloud Branchingアプリの設定
TiDB Cloud Branchingの動作を設定するには リポジトリのルートディレクトリにtidbcloud.ymlファイルを追加し、以下の手順に従って必要な設定をこのファイルに追加します。
branch.blockList
型:文字列の配列。デフォルト: [] 。
TiDB Cloud Branching アプリを禁止する GitHub ブランチを指定します。たとえそれらがallowList内にある場合でも同様です。
github:
branch:
blockList:
- ".*_doc"
- ".*_blackList"
branch.allowList
型:文字列の配列。デフォルト: [.*] 。
TiDB Cloud Branchingアプリを許可するGitHubブランチを指定してください。
github:
branch:
allowList:
- ".*_db"
branch.mode
型:文字列。デフォルト: reset 。
TiDB Cloud Branchingアプリがブランチの更新をどのように処理するかを指定します。
resetに設定されている場合、 TiDB Cloud Branching アプリは既存のブランチを最新のデータで更新します。reserveに設定されている場合、 TiDB Cloud Branching アプリは最新のコミット用に新しいブランチを作成します。
github:
branch:
mode: reset
branch.autoDestroy
型:ブール値。デフォルト: true 。
falseに設定されている場合、プルリクエストがクローズまたはマージされたときに、 TiDB Cloud Branching アプリはTiDB Cloud Starterインスタンスのブランチを削除しません。
github:
branch:
autoDestroy: true
分岐型CIワークフローを作成する
ブランチを活用するためのベストプラクティスの1つは、ブランチングCIワークフローを作成することです。このワークフローを使用すると、プルリクエストをマージする前に、本番インスタンス自体を使用する代わりに、 TiDB Cloud Starterインスタンスのブランチを使用してコードをテストできます。ライブデモはここをご覧ください。
ワークフローを作成するための主な手順は以下のとおりです。
支店の接続情報を取得します。
wait-for-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 Cloud APIキー。
テストコードを修正してください。
テストコードを修正して、GitHub Actions からの接続情報を受け入れるようにしてください。たとえば、 ライブデモで示されているように、環境を介して接続情報を受け入れることができます。
次は?
以下の例を通して、ブランチング機能を備えたGitHub連携の使い方を学びましょう。
ブランチングGitHubとの連携機能を使わずに、ブランチングCI/CDワークフローを構築することも可能です。例えば、 setup-tidbcloud-cliとGitHub Actionsを使用して、CI/CDワークフローをカスタマイズできます。

