いつも記事を読んでいただきありがとうございます!
エンジニアのMasaki(@MASAKIOKUDA-eng)です👍
本日は業務内で見つけたリポジトリクローンを使わずに、CodeBuild上で他リポジトリソースを取得する方法についてまとめたいと思います。
○本記事で記載すること
- CodeBuild、CodePipelineを用いた基本操作
- CodeBuildを用いた複数リポジトリの取得方法
- CodeBuildで用いるビルド環境変数
○本記事で記載しないこと
- CodeCommit,CodeBuild,CodeDeploy,Codepipelineの詳細説明
- 応用的なIaC環境構築方法
目次
- 今回のゴール
- CodeBuild設定
- CodePipeline設定
- 構築環境を動かしてみる
- まとめ
今回のゴール
今回のゴールとしてBuildspecでgit cloneを行わずに他リポジトリのブランチを取得するです!
git cloneで他リポジトリのブランチを取得する方法でもいいのですが、PAT認証設定やGitHub Appsの設定を行う必要があるため、できるだけ楽な方法を取りたいと思ったのが今回のきっかけです。
CodeBuild設定
まずは、CodeBuild設定を行っていきましょう。
- 上部検索ボックスにCodeBuildと入力し、結果をクリック
- CodeBuild画面へ遷移するため、プロジェクトを作成するボタンをクリック
- ビルドプロジェクト作成画面が表示されるため、プロジェクト名を入力する(今回は検証用のためTestと入力しておく)
- ソース1 - プライマリ下部のソースプロバイダのプルダウンをクリックしGitHubをクリック
- デフォルトソース認証情報を管理ボタンをクリック
- 青文字リンクCodeConnections 経由で新しい GitHubをクリック
- GitHub アプリ接続を作成する下部の接続名を入力し接続ボタンをクリック(検証のためTestと入力)
- GitHubの画面が表示されるため、Authorize AWS Connector for GitHubボタンをクリック
- AWS画面に遷移するため新しいアプリをインストールするボタンをクリック
- GitHub画面へ遷移するためinstall & Authorizeボタンをクリック
- デフォルトソース認証情報を管理画面に戻るため、接続下部のプルダウンをクリックし、先ほど作成した接続名をクリック。そのあと、保存ボタンをクリック
- AWS が管理する GitHub アプリを使用して正常に接続されましたの表示を確認後、リポジトリよりhogehogeをクリック
-
とりあえず、hogehogeリポジトリの設定が完了しました。hugahugaリポジトリも設定するためにソースの追加ボタンを押しましょう
-
hogehogeリポジトリの設定と同じhugahugaリポジトリを設定しましょう
-
Buildspecの表示までスクロールしbuildspec ファイルを使用する左側のラジオボタンをクリックし、buildspec名の入力ボックスにbuildspec.ymlと入力する
- 最下部のビルドプロジェクトを作成するボタンをクリックする
- ビルドプロジェクトにTestが追加されていることを確認し、左側ペインのCodePipelineをクリック
CodePipeline設定
- 上部のパイプラインを作成するボタンをクリック
- CodePipeline設定画面が表示されるため、Build custom pipeline左側のラジオボタンをクリックし、次へボタンをクリック
- パイプライン名を入力する(検証用のためTest)。それ以外はデフォルト設定でいいので、最下部の次へボタンをクリック
- ソースプロバイダー下部のプルダウンをクリックし、**GitHub(バージョン2)**をクリック
- 接続、リポジトリ名およびデフォルトブランチを適宜設定。設定後、次へボタンをクリック
- CodeBuild設定が求められるため、前の手順で作成したビルドプロジェクトを設定し、次へボタンをクリック
- CodeDeploy設定画面が表示されるが、今回の要件では設定不要のため、導入段階をスキップボタンをクリック
- 内容を確認し問題なければ、最下部のパイプラインを作成するボタンをクリック
上記設定でいったんCodeBuildとCodePipelineの設定が完了しましたが、hogehogeリポジトリにbuildspec.ymlを作成しないとパイプラインが失敗してしまいます。
buildspec.ymlとして以下を作成します
version: 0.2
phases:
install:
commands:
- echo "Starting build process..."
pre_build:
commands:
- echo "Copying secondary source files..."
- cp -r $CODEBUILD_SRC_DIR_hugahuga/* .
- echo "Files copied successfully."
build:
commands:
- echo "Listing files in the current directory:"
- ls -la
post_build:
commands:
- echo "Build process complete."
構築環境を動かしてみる
一旦環境構築が完了したので、hogehogeリポジトリでCommitを行い、CodePipelineが動いているか確認しよう。
とりあえず、Pipelineは成功しているようですね。ログを見て、hogehogeリポジトリとhugahugaリポジトリの中身が双方はいっているか確認しよう。
入っている!!!
とりあえず、今回のゴールは達成できたな!!
まとめ
今回はリポジトリクローンを使わずに、CodeBuild上で他リポジトリブランチを取得する方法を簡単にまとめてみました。git cloneを使わずにCodeBuildの設定だけで複数リポジトリを取り込むことができるのは、運用視点でオイシイ印象を持ちました。
そのうえで、そこまでページ数が多くない手順でしたが思いのほか作成時間がかかったので、要点をまとめながら作成することが今後の課題かなぁと思いました!(AWSは奥深い~~)
参考サイト
AWS Buildspecユーザガイド
【初心者】CodeCommit, CodeDeploy, CodePipeline を使ってみる
最後まで記事を読んでいただきありがとうございます
本技術ブログは読者あってだと個人的に感じております。
読んでみて、「参考になった」と思った方はいいねとストックをお願いいたします
引き続き、AWS含め、様々な技術に関するナレッジを共有したいと思います!