このページでは、Cloud Build を使用して、Java ベースのアプリケーションのビルドとテスト、ビルドされたアーティファクトの Artifact Registry 内の Maven リポジトリへの保存、ビルドの来歴情報の生成を行う方法について説明します。
始める前に
- Java ベースのアプリケーションの作成に精通している必要があります。
- Maven に精通している必要があります。
- Java プロジェクトを準備します。
- Cloud Build 構成ファイルの作成方法に精通している必要があります。
- Artifact Registry に Maven リポジトリを用意します。リポジトリがない場合は、新しいリポジトリを作成します。
- このページで
gcloudコマンドを実行するには、Google Cloud CLI をインストールします。
maven イメージの使用
Docker Hub の maven イメージを使用して Java アプリケーションをビルドするように Cloud Build を構成できます。
maven イメージでタスクを実行するには、次のフィールドを使用してビルド構成にステップを追加します。
name: このフィールドの値をmavenまたはmaven:<tag>に設定します。タグはバージョンを表します。イメージタグを指定しない場合、Cloud Build はデフォルトでlatestイメージを使用します。entrypoint: このフィールドを設定すると、nameで参照されるイメージのデフォルトのエントリポイントがオーバーライドされます。このフィールドの値をmvnに設定して、ビルドステップのエントリポイントとしてmvnを呼び出し、mvnコマンドを実行します。args: ビルドステップのargsフィールドは引数のリストを受け取り、nameフィールドによって参照されるイメージに渡します。
次のビルドステップでは、3.3-jdk-8 とタグ付けされた maven イメージの entrypoint を指定し、ビルドツール バージョンを出力します。
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
Java ビルドを構成する
プロジェクトのルート ディレクトリに、
cloudbuild.yamlという名前でビルド構成ファイルを作成します。テストを実行する:
mavenはmaven testを提供します。これにより、依存関係をダウンロードしてアプリケーションをビルドし、ソースコードで指定されたテストを実行します。ビルドステップのargsフィールドは引数のリストを受け取り、nameフィールドによって参照されるイメージに渡します。ビルド構成ファイルで、
argsフィールドにtestを追加して、maven内でtestを呼び出します。steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']アプリケーションをパッケージ化する:
mavenイメージでアプリケーションを JAR ファイルにパッケージ化するには、argsフィールドにpackageコマンドを指定します。packageコマンドにより、/workspace/target/に JAR ファイルがビルドされます。次のビルドステップでは、Java アプリケーションをパッケージ化します。
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['package','-Dmaven.test.skip=true']Artifact Registry にアップロードする:
ビルド構成ファイルで
mavenArtifactsフィールドを使用して、Artifact Registry のアプリケーション パスと Maven リポジトリを指定します。artifacts: mavenArtifacts: - repository: 'https://location-maven.pkg.dev/project-id/repository-name' path: 'app-path' artifactId: 'build-artifact' groupId: 'group-id' version: 'version'次の値を置き換えます。
- location: Artifact Registry 内のリポジトリの場所。
- project-id: Artifact Registry リポジトリを含む Google Cloud プロジェクトの ID。
- repository-name: Artifact Registry の Maven リポジトリの名前。
- app-path: パッケージ化されたアプリケーションのパス。
- build-artifact: ビルドステップで作成されたパッケージ ファイルの名前。
- group-id: すべての Maven プロジェクトでプロジェクトを一意に識別します。形式は
com.mycompany.appです。詳細については、Maven の命名規則に関するガイドをご覧ください。 - version: アプリケーションのバージョン番号。
1.0.1のように数字とドットで書式設定します。
省略可: 来歴の生成を有効にする
Cloud Build は、検証可能なソフトウェア アーティファクトのためのサプライ チェーン レベル(SLSA)ビルドの来歴メタデータを生成し、継続的インテグレーション パイプラインの保護をサポートします。
来歴の生成を有効にするには、構成ファイルの
optionsセクションにrequestedVerifyOption: VERIFIEDを追加します。手動またはビルドトリガーを使用してビルドを開始します。
ビルドが完了すると、Artifact Registry でリポジトリの詳細を表示できます。
また、ビルドの来歴メタデータの表示や来歴の検証を行うこともできます。
次のステップ
- ビルド結果を表示する方法を学習する。
- ビルドを保護する方法を学習する。
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。
- Java アプリケーションをビルドしてコンテナ化する方法を学習する。
- Cloud Run でアプリケーションをデプロイする方法を学習する。
- GKE でアプリケーションをデプロイする方法を学習する。
- ビルドエラーをトラブルシューティングする方法について学習する。