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 クラスターに対応するブランチを作成します。このブランチでは、本番データベースに影響を与えることなく、新機能やバグ修正を個別に行うことができます。

このドキュメントでは、次のトピックについて説明します。

  1. TiDB Cloud ServerlessブランチをGitHubと統合する方法
  2. TiDB Cloudブランチングアプリはどのように機能しますか
  3. 本番のクラスターではなくブランチを使用してすべてのプルリクエストをテストするためのブランチベースの CI ワークフローを構築する方法

始める前に

統合する前に、次のものを用意してください。

TiDB Cloud ServerlessブランチをGitHubリポジトリに統合する

TiDB Cloud Serverless ブランチを GitHub リポジトリに統合するには、次の手順を実行します。

  1. TiDB Cloudコンソールで、プロジェクトのクラスターページに移動し、ターゲットのTiDB Cloud Serverless クラスターの名前をクリックして、その概要ページに移動します。

  2. 左側のナビゲーション ペインで[ブランチ]をクリックします。

  3. 「ブランチ」ページの右上隅にある「GitHub に接続」をクリックします。

    • GitHub にログインしていない場合は、まず GitHub にログインするように求められます。
    • 統合を初めて使用する場合は、 TiDB Cloud Branchingアプリを承認するように求められます。
  4. 「GitHub に接続」ダイアログで、 「GitHub アカウント」ドロップダウン リストから GitHub アカウントを選択します。

    アカウントがリストに存在しない場合は、 「その他のアカウントのインストール」をクリックし、画面の指示に従ってアカウントをインストールします。

  5. GitHub リポジトリのドロップダウン リストでターゲット リポジトリを選択します。リストが長い場合は、名前を入力してリポジトリを検索できます。

  6. 「接続」をクリックして、 TiDB Cloud Serverless クラスターと GitHub リポジトリを接続します。

TiDB Cloudブランチングアプリの動作

TiDB Cloud Serverless クラスターを GitHub リポジトリに接続すると、このリポジトリ内の各プル リクエストに対して、 TiDB Cloudブランチ GitHub App が対応するTiDB Cloud Serverless ブランチを自動的に管理できるようになります。プル リクエストの変更に対するデフォルトの動作を次に示します。

プルリクエストの変更TiDB Cloudブランチングアプリの動作
プルリクエストを作成するリポジトリにプル リクエストを作成すると、 TiDB CloudブランチアプリはTiDB Cloud Serverless クラスターのブランチを作成します。 branch.moderesetに設定されている場合、ブランチ名は${github_branch_name}_${pr_id}形式に従います。 branch.modereserveに設定されている場合、ブランチ名は${github_branch_name}_${pr_id}_${commit_sha}形式に従います。ブランチの数には制限があることに注意してください。
新しいコミットをプルリクエストにプッシュするbranch.mode resetに設定すると、リポジトリ内のプル リクエストに新しいコミットをプッシュするたびに、 TiDB CloudブランチアプリはTiDB Cloud Serverless ブランチをリセットします。 branch.mode reserveに設定すると、アプリは最新のコミット用に新しいブランチを作成します。
プルリクエストをクローズまたはマージするプル リクエストをクローズまたはマージすると、 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"

ブランチモード

タイプ:文字列。デフォルト: reset

TiDB Cloud Branching アプリがブランチの更新を処理する方法を指定します。

  • resetに設定すると、 TiDB Cloud Branching アプリは既存のブランチを最新のデータで更新します。
  • reserveに設定すると、 TiDB Cloud Branching アプリは最新のコミットに対して新しいブランチを作成します。
github: branch: mode: reset

ブランチ.自動破棄

タイプ:ブール値。デフォルト: true

falseに設定すると、プル リクエストがクローズまたはマージされたときに、 TiDB Cloud Branching アプリはTiDB Cloud Serverless ブランチを削除しません。

github: branch: autoDestroy: true

分岐CIワークフローを作成する

ブランチを使用するベスト プラクティスの 1 つは、ブランチ CI ワークフローを作成することです。このワークフローを使用すると、プル リクエストをマージする前に、本番クラスターを使用する代わりに、 TiDB Cloud Serverless ブランチを使用してコードをテストできます。ライブ デモここをご覧ください。

ワークフローを作成する主な手順は次のとおりです。

  1. TiDB Cloud ServerlessブランチをGitHubリポジトリに統合する

  2. ブランチ接続情報を取得します。

    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 }}"
    • token : GitHub は自動的にトークンシークレットを作成します。そのまま使用できます。
    • public-keyおよびprivate-key : TiDB CloudAPIキー
  3. テストコードを変更します。

    GitHub Actions からの接続情報を受け入れるようにテスト コードを変更します。たとえば、 ライブデモに示すように、環境を通じて接続情報を受け入れることができます。

次は何か

次の例を使用して、ブランチング GitHub 統合の使用方法を学習します。

ブランチング GitHub 統合を使用せずに、ブランチング CI/CD ワークフローを構築することもできます。たとえば、 setup-tidbcloud-cliと GitHub Actions を使用して CI/CD ワークフローをカスタマイズできます。

このページは役に立ちましたか?