Gemini CLI と CI/CD スキルを使用してアプリケーションをデプロイする

1. はじめに

この Codelab では、Gemini CLI と CI/CD 拡張機能を使用して、プラットフォーム エンジニアリングの「ゼロからヒーロー」ワークフローを体験します。このチュートリアルでは、アプリケーション(Spring Petclinic デモや Python Flask アプリなど)を構築し、共有するために Google Cloud にデプロイしようとしているエンタープライズ デベロッパーの役割を担います。

複雑なパイプラインを手動で構成する代わりに、自然言語を使用して Gemini をガイドします。エージェントはプロジェクトを分析し、Google Cloud Run などの小規模なターゲット ランタイムを提案し、漏洩したシークレットのセキュリティ スキャンを実行して、デプロイを処理し、機能する URL を提供します。

演習内容

  • リポジトリのクローンを作成します(独自のリポジトリまたは Spring Petclinic などのデモアプリを使用できます)。
  • Gemini CLI と CI/CD 拡張機能をインストールして構成します。
  • deploy my application などのプロンプトを使用して、デプロイ スキルをトリガーします。
  • Gemini がプロジェクトを分析し、Cloud Run を提案し、セキュリティ チェックを実行して、アプリケーションをデプロイする様子を確認します。
  • 実行中のアプリケーションを確認します。

必要なもの

  • ウェブブラウザ(Chrome など)。
  • 課金を有効にした Google Cloud プロジェクト

この Codelab は、初心者を含むあらゆるレベルのデベロッパーを対象としています。

2. 始める前に

お支払い情報の設定

Google Cloud プロジェクトを作成または選択する

Google Cloud プロジェクトの作成

  1. Google Cloud コンソールのプロジェクト セレクタ ページで、Google Cloud プロジェクトを選択または作成します。
  2. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

Cloud Shell の起動

Cloud Shell は、必要なツールがプリロードされた Google Cloud で動作するコマンドライン環境です。

  1. Google Cloud コンソールの上部にある [Cloud Shell をアクティブにする] をクリックします。
  2. Cloud Shell に接続したら、認証を確認します。
    gcloud auth list
    
  3. プロジェクトが構成されていることを確認します。
    gcloud config get project
    
  4. プロジェクトが想定どおりに設定されていない場合は、設定します。
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

API を有効にする

Cloud Shell で次のコマンドを実行して、このラボに必要なすべての API を有効にします。

gcloud services enable \
  cloudbuild.googleapis.com \
  run.googleapis.com \
  artifactregistry.googleapis.com

3. Gemini CLI を設定する

このステップでは、Gemini CLI と CI/CD 拡張機能をインストールして構成します。

  1. Gemini CLI がインストールされていることを確認します。まだインストールしていない場合は、Gemini CLI スタートガイドの手順に沿って操作してください。
  2. ログイン: Google アカウントでログインすることをおすすめします。詳細については、認証ガイドをご覧ください。
  3. CI/CD 拡張機能をインストールする: 次のコマンドを実行して、GitHub から拡張機能をインストールします。
    gemini extensions install https://github.com/gemini-cli-extensions/cicd
    
    インストールされている拡張機能を一覧表示して、拡張機能のインストールを検証できます。
    gemini extensions list
    
  4. アプリケーションのデフォルト認証情報(ADC)を構成する: CI/CD 拡張機能では、ADC を構成する必要があります。次のコマンドを実行します。
    gcloud auth login
    gcloud auth application-default login
    
  5. デフォルトのプロジェクトとリージョンを設定する: ADC のデフォルトのプロジェクトと割り当てプロジェクトで gcloud を構成しておくと便利です。 は実際の値(例: my-project)に置き換えます。
    gcloud config set project <PROJECT_ID>
    gcloud auth application-default set-quota-project <PROJECT_ID>
    

4. アプリケーションをデプロイする

これで、Gemini CLI と CI/CD 拡張機能を使用してアプリケーションをデプロイする準備が整いました。

リポジトリのクローンを作成する

このラボでは、一般的な Spring Petclinic サンプル アプリケーションを使用します。サポートされているランタイム(Python/Flask、Java/Spring Boot など)を使用するアプリケーションが用意されている場合は、そのアプリケーションを使用することもできます。

  1. リポジトリのクローンを作成し、ディレクトリに移動します。
    git clone https://github.com/spring-projects/spring-petclinic.git
    cd spring-petclinic
    

Gemini にデプロイを指示する

  1. プロジェクト ディレクトリから Gemini CLI を起動します。
    gemini
    
  2. Gemini CLI シェルに入ったら、CI/CD 拡張機能を使用してアプリケーションをデプロイします。次のような簡単な自然言語プロンプトを使用できます。
    deploy my application
    

この後の手順

Gemini は google-cicd-deploy スキルを有効にして、次の操作を行います。

  • プロジェクトを分析する: アプリケーション タイプ(Spring Boot など)が特定されます。
  • ランタイムを提案: Google Cloud Run などの適切なランタイムが提案されます。
  • セキュリティ スキャン: MCP ツールを使用して、漏洩したシークレットをスキャンします。プロンプトが表示されたら、ツールを実行できるようにします。
  • 構成を抽出する: gcloud を使用して、現在のプロジェクト環境を読み取ります。
  • パラメータを提案する: デプロイ パラメータの妥当なデフォルト値が表示され、確認を求められます。

提案された構成を確認し、デプロイを確認します。

完了すると、Gemini は実行中のアプリケーションの URL を提供します。

5. クリーンアップ

Google Cloud アカウントに継続的に課金されないようにするには、この Codelab で作成したリソースを削除します。

Cloud Run にデプロイした場合は、次のコマンドを使用してサービスを削除できます( はコンピューティング リージョン(us-central1 など)に置き換えます)。

gcloud run services delete spring-petclinic --region <REGION>

または、この Codelab 専用のプロジェクトを作成した場合は、プロジェクト全体を削除できます。

gcloud projects delete <YOUR_PROJECT_ID>

6. 完了

おめでとうございます!Gemini CLI と CI/CD 拡張機能を使用して、自然言語プロンプトを使用してアプリケーションを Google Cloud Run にデプロイしました。

学習した内容

  • Gemini CLI と CI/CD 拡張機能をインストールして構成する方法。
  • 自然言語を使用してデプロイ フローをトリガーする方法。
  • Gemini がプロジェクトを分析し、セキュリティ スキャンを処理して、ランタイムを提案する方法。

次のステップ

  • CI/CD 拡張機能を使用して、完全なパイプラインの設計や Terraform の生成など、より高度なプロンプトを試す。
  • CI/CD 拡張機能をご覧ください。
  • Developer Connect の詳細を確認する。

リファレンス ドキュメント