CodePipelineでCodeBuildのテストを自動化
CodePipelineでCodeBuildのテストを自動化 CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使 […]
Filter by Category
CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使うことで特定の条件をトリガーにしてCodeBuildによるテストを自動化することができます。
ブランチ戦略やテスト戦略によって運用方法が異なると思いますが、今回は弊社で採用している簡易的なGit flowで運用しているリポジトリで特定のブランチ(dev)に変化(マージ)があったらCodeBuildでテストを自動で実行させる方法を解説します。ブランチの変化がトリガーなのでプッシュでも検知しますが、弊社ではdevブランチには直接プッシュしない運用なので今回はマージをトリガーにしています。
CodeBuildではCodeCommitでプルリクエストの作成をテスト実行のトリガーにする場合は、Lambdaなどのサービスと連携しないと構築できませんが、特定ブランチの変化(プッシュやマージなど)をトリガーにしたテスト実行の場合はCodePipelineを使って構築できます。CodePipelineはコードを書かずにブラウザからの操作でも構築可能です。
前回の記事はこちら
コンソールからCodeBuildを検索して「ビルドプロジェクトを作成する」を押します。
プロジェクト名、リポジトリ、ブランチを設定します。
設定項目
プロジェクト名:ContinuousIntegrationTeste
リポジトリ:ContinuousTesting
ブランチ:dev
オペレーティングシステム、ランタイム、イメージを設定します。テストするコードで使用しているPythonのバージョンが3.10なので、イメージは「standard:6.0」を選択します。
設定項目
オペレーティングシステム:Ubuntu
ランタイム:Standard
イメージ:aws/codebuild/standard:6.0
「ビルドプロジェエクトを作成する」を押して作成します。
コンソールからCodePipelineを検索して「パイプラインを作成する」を押します。
パイプライン名、パイプラインタイプ、サービスロールを設定して「次に」を押します。パイプラインタイムは特別な理由がない限りv2を選択します。新しいサービスロールを選択するとロール名が自動で入力されます。
設定項目
パイプライン名:BranchChangeTestPipeline
ソースプロバイダ、リポジトリ名、ブランチ名を設定して「次に」を押します。
設定項目
ソースプロバイダ:AWS CodeCommit
リポジトリ名:ContinuousTesting
ブランチ名:dev
ビルドステージは画像のようになっていればそのまま「次に」を押します。
今回はデプロイは実行しないので「導入段階をスキップ」を押します。
ポップアップが表示されたら「スキップ」を押します。
「パイプラインを作成する」を押して作成します。
パイプラインを作成したタイミングで設定したテストが実行されるのでCodeBuildのビルドプロジェクトを確認します。
履歴に追加されたステータスが進行中のビルドの詳細を確認します。
前回の記事で作成した、CodeBuildのテストに必要なbuildspec.ymlに書いてある文字列が表示されていることを確認します。
テスト結果も画像のように表示されます。
テストが自動で実行されるか確認するためにプルリクエストを作成します。CodeCommitでdevブランチにプルリクエストを作成します。
タイトルを入力します。説明は任意なので空欄のままでも問題ありません。
テスト実行時に表示する文字列が変更されていることを確認して「プルリクエストの作成」を押します。
作成したプルリクエストをマージします。
「早送りマージ」を選択して「プルリクエストのマージ」を押します。
CodeBuildのビルドプロジェクトに新しい履歴が追加されました。
テスト実行時に表示される文字列がマージされた後の内容になっていることを確認します。
テスト結果も先ほどと変わらず表示されています。
CodeBuildで実行したビルドプロジェクトは「レポート」から詳細な情報を確認することができます。
画像のようにテストの実行時間やステータスなどを確認できます。
実行が完了したビルドプロジェクトは画像のようにステータスが「成功」に変わります。失敗の場合は「失敗」となります。
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません