CodePipelineでCodeBuildのテストを自動化
CodePipelineでCodeBuildのテストを自動化 CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使 […]
Filter by Category
CodePipelineでCodeBuildのテストを自動化 CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使 […]
AWS CodeCommitでプルリクエスト・マージ ソースコードの管理にはGitHubやGitLabを採用している方が多いかもしれませんが、AWSにもCodeCommitというサービスがあり、5人までは無料で5人以上で […]
AWS LambdaとS3、SNSでファイルのアップロードを自動通知 AWS Lambdaは特定の条件を満たすときにサーバーレスでPython(他のプログラミング言語も)を実行できるサービスです。トリガーを検知したときや […]
Amazon Route 53で新規ドメインを登録 ウェブサイトやウェブサービスを運営する際にドメインは欠かせない要素です。この記事では、Amazon Route 53で新しいドメインを登録する方法について解説します。 […]
S3のライフサイクルルールの落とし穴 保存したデータが必要以上に増えないようにライフサイクルルールで指定した日数を経過したデータは削除する設定にしていましたが、後日改めてバケットを確認するとフォルダ、ファイルどちらも削除 […]
S3でストレージクラスを一括で変更 デフォルトではS3のストレージクラスは「標準」になっていますが、このストレージクラスは頻繁にアクセスするデータを保存するのに適した設定なので、バックアップファイルなどの頻繁にアクセスし […]
AWS Rekognitionとは AWS Rekognitionは、画像と動画から情報を抽出するディープラーニング技術を利用した分析サービスです。このサービスは、顔認識、物体検出、シーン分析など、さまざまな分析機能を提 […]
AWS Cloud9にPython3.9をインストール AWSのCloud9(Ubuntu)にはデフォルトでPython 3.6.9がインストールされています。 openaiに必要なpandasのインストール opena […]
AWSのCloud9を使ってPythonのプログラミング研修を開催 2022年11月から2023年2月までの期間で、群馬県庁職員を対象にしたDXを促進するためのPythonによるプログラミング研修を開催しました。現在、群 […]
AWSで追加したユーザのMFAに1Passwordを設定 AWSのコンソールにログインする際にMFA(Multi-Factor Authentication)という多要素認証を設定することで、メールアドレスとパスワードに […]
AWS Deep Learning AMIを用いたGPU環境構築の手順 今回はCUDAやcuDNN等の環境が予め構築されていて機械学習に適したインスタンスをかんたんに作成できるAWS Deep Learning AMIを […]
データベースのバックアップファイルをAWSのS3に保存するプログラムを手動で叩くと問題なくS3にファイルが保存されるのに、cronで定期的に実行したらエラーが出るようになったので調べた内容です。原因はPythonのパスが […]
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やソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません