TiDB Cloud Serverless Branching (ベータ版) を GitHub と統合する
注記:
統合はTiDB Cloudサーバーレス ブランチに基づいて構築されています。このドキュメントを読む前に、 TiDB Cloud Serverless ブランチングについて理解しておいてください。
アプリケーション開発に GitHub を使用する場合は、 TiDB Cloud Serverless ブランチを GitHub CI/CD パイプラインに統合できます。これにより、本番データベースに影響を与えることなく、ブランチを使用してプル リクエストを自動的にテストできます。
統合プロセスでは、 TiDB Cloudブランチ GitHub アプリをインストールするように求められます。アプリは、GitHub リポジトリのプル リクエストに従ってTiDB Cloud Serverless ブランチを自動的に管理できます。たとえば、プル リクエストを作成すると、アプリはTiDB Cloud Serverless クラスターの対応するブランチを作成します。このブランチでは、本番データベースに影響を与えることなく、新機能やバグ修正を個別に行うことができます。
このドキュメントでは、次のトピックについて説明します。
- TiDB Cloud ServerlessブランチをGitHubと統合する方法
- TiDB Cloudブランチングアプリはどのように機能しますか
- 本番のクラスターではなくブランチを使用してすべてのプルリクエストをテストするためのブランチベースの CI ワークフローを構築する方法
始める前に
統合する前に、次のものを用意してください。
- GitHubアカウント
- アプリケーション用のGitHubリポジトリ
- TiDB Cloudサーバーレス クラスター
TiDB Cloud ServerlessブランチをGitHubリポジトリに統合する
TiDB Cloud Serverless ブランチを GitHub リポジトリに統合するには、次の手順を実行します。
TiDB Cloudコンソールで、プロジェクトのクラスターページに移動し、ターゲットのTiDB Cloud Serverless クラスターの名前をクリックして、その概要ページに移動します。
左側のナビゲーション ペインで[ブランチ] をクリックします。
「ブランチ」ページの右上隅にある「GitHub に接続」をクリックします。
- GitHub にログインしていない場合は、まず GitHub にログインするように求められます。
- 統合を初めて使用する場合は、 TiDB Cloud Branchingアプリを承認するように求められます。
「GitHub に接続」ダイアログで、 「GitHub アカウント」ドロップダウン リストから GitHub アカウントを選択します。
アカウントがリストに存在しない場合は、 「その他のアカウントのインストール」をクリックし、画面の指示に従ってアカウントをインストールします。
GitHub リポジトリのドロップダウン リストでターゲット リポジトリを選択します。リストが長い場合は、名前を入力してリポジトリを検索できます。
「接続」をクリックして、 TiDB Cloud Serverless クラスターと GitHub リポジトリを接続します。
TiDB Cloudブランチングアプリの動作
TiDB Cloud Serverless クラスターを GitHub リポジトリに接続すると、このリポジトリ内の各プル リクエストに対して、 TiDB Cloudブランチ GitHub App が対応するTiDB Cloud Serverless ブランチを自動的に管理できるようになります。プル リクエストの変更に対するデフォルトの動作を次に示します。
プルリクエストの変更 | TiDB Cloudブランチングアプリの動作 |
---|---|
プルリクエストを作成する | リポジトリにプル リクエストを作成すると、 TiDB CloudブランチアプリによってTiDB Cloud Serverless クラスターのブランチが作成されます。ブランチ名は${github_branch_name}_${pr_id}_${commit_sha} 形式です。ブランチの数には制限含まれていることに注意してください。 |
新しいコミットをプルリクエストにプッシュする | リポジトリ内のプル リクエストに新しいコミットをプッシュするたびに、 TiDB Cloudブランチアプリは以前のTiDB Cloud Serverless ブランチを削除し、最新のコミット用の新しいブランチを作成します。 |
プルリクエストをクローズまたはマージする | プル リクエストをクローズまたはマージすると、 TiDB Cloudブランチアプリによってこのプル リクエストのブランチが削除されます。 |
プルリクエストを再開する | プル リクエストを再度開くと、 TiDB Cloudブランチアプリによってプル リクエストの最新のコミットのブランチが作成されます。 |
TiDB Cloud Branching アプリを構成する
TiDB Cloudブランチアプリの動作を構成するには、リポジトリのルート ディレクトリにtidbcloud.yml
ファイルを追加し、次の手順に従ってこのファイルに必要な構成を追加します。
ブランチ.ブロックリスト
タイプ:文字列の配列。デフォルト: []
。
allowList
内にある場合でも、 TiDB Cloud Branching アプリを禁止する GitHub ブランチを指定します。
github:
branch:
blockList:
- ".*_doc"
- ".*_blackList"
ブランチ.allowList
タイプ:文字列の配列。デフォルト: [.*]
。
TiDB Cloud Branching アプリを許可する GitHub ブランチを指定します。
github:
branch:
allowList:
- ".*_db"
ブランチ.自動予約
タイプ:ブール値。デフォルト: false
。
true
に設定すると、 TiDB Cloud Branching アプリは、前のコミットで作成されたTiDB Cloud Serverless ブランチを削除しません。
github:
branch:
autoReserved: false
ブランチ.自動破棄
タイプ:ブール値。デフォルト: true
。
false
に設定すると、プル リクエストがクローズまたはマージされたときに、 TiDB Cloud Branching アプリはTiDB Cloud Serverless ブランチを削除しません。
github:
branch:
autoDestroy: true
分岐CIワークフローを作成する
ブランチを使用するベスト プラクティスの 1 つは、ブランチ CI ワークフローを作成することです。このワークフローを使用すると、プル リクエストをマージする前に、本番クラスターを使用する代わりに、 TiDB Cloud Serverless ブランチを使用してコードをテストできます。ライブ デモここをご覧ください。
ワークフローを作成する主な手順は次のとおりです。
ブランチ接続情報を取得します。
tidbcloud ブランチを待つアクションを使用して、 TiDB Cloud Serverless ブランチの準備が完了するまで待機し、ブランチの接続情報を取得できます。
使用例:
steps: - name: Wait for TiDB Cloud Serverless 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 Serverless 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 }}"テストコードを変更します。
GitHub Actions からの接続情報を受け入れるようにテスト コードを変更します。たとえば、 ライブデモに示すように、環境を通じて接続情報を受け入れることができます。
次は何か
次の例を使用して、ブランチング GitHub 統合の使用方法を学習します。
ブランチング GitHub 統合を使用せずに、ブランチング CI/CD ワークフローを構築することもできます。たとえば、 setup-tidbcloud-cli
と GitHub Actions を使用して CI/CD ワークフローをカスタマイズできます。