0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リポジトリクローンを使わずに、CodeBuild上で他リポジトリブランチを取得する方法

Posted at

いつも記事を読んでいただきありがとうございます!
エンジニアのMasaki(@MASAKIOKUDA-eng)です👍

本日は業務内で見つけたリポジトリクローンを使わずに、CodeBuild上で他リポジトリソースを取得する方法についてまとめたいと思います。

○本記事で記載すること

  • CodeBuild、CodePipelineを用いた基本操作
  • CodeBuildを用いた複数リポジトリの取得方法
  • CodeBuildで用いるビルド環境変数

○本記事で記載しないこと

  • CodeCommit,CodeBuild,CodeDeploy,Codepipelineの詳細説明
  • 応用的なIaC環境構築方法

目次

  1. 今回のゴール
  2. CodeBuild設定
  3. CodePipeline設定
  4. 構築環境を動かしてみる
  5. まとめ

今回のゴール

今回のゴールとしてBuildspecでgit cloneを行わずに他リポジトリのブランチを取得するです!
git cloneで他リポジトリのブランチを取得する方法でもいいのですが、PAT認証設定GitHub Appsの設定を行う必要があるため、できるだけ楽な方法を取りたいと思ったのが今回のきっかけです。

CodeBuild設定

まずは、CodeBuild設定を行っていきましょう。

GitHub環境については以下の通りです。
○プライマリリポジトリ:hogehoge
○セカンダリリポジトリ:hugahuga

スクリーンショット 2024-10-28 215017.png

○hogehogeリポジトリの中身

スクリーンショット 2024-10-28 215122.png

○hugahugaリポジトリの中身

スクリーンショット 2024-10-28 215202.png

  • 上部検索ボックスにCodeBuildと入力し、結果をクリック

スクリーンショット 2024-10-28 214430.png

  • CodeBuild画面へ遷移するため、プロジェクトを作成するボタンをクリック

スクリーンショット 2024-10-28 214530.png

  • ビルドプロジェクト作成画面が表示されるため、プロジェクト名を入力する(今回は検証用のためTestと入力しておく)

スクリーンショット 2024-10-28 214750.png

  • ソース1 - プライマリ下部のソースプロバイダのプルダウンをクリックしGitHubをクリック

スクリーンショット 2024-10-28 215240.png

  • デフォルトソース認証情報を管理ボタンをクリック

スクリーンショット 2024-10-28 215455.png

  • 青文字リンクCodeConnections 経由で新しい GitHubをクリック

スクリーンショット 2024-10-28 220049.png

  • GitHub アプリ接続を作成する下部の接続名を入力し接続ボタンをクリック(検証のためTestと入力)

スクリーンショット 2024-10-28 220213.png

  • GitHubの画面が表示されるため、Authorize AWS Connector for GitHubボタンをクリック

スクリーンショット 2024-10-28 220348.png

  • AWS画面に遷移するため新しいアプリをインストールするボタンをクリック

スクリーンショット 2024-10-28 220645 - コピー.png

  • GitHub画面へ遷移するためinstall & Authorizeボタンをクリック

スクリーンショット 2024-10-28 221129.png

  • デフォルトソース認証情報を管理画面に戻るため、接続下部のプルダウンをクリックし、先ほど作成した接続名をクリック。そのあと、保存ボタンをクリック

スクリーンショット 2024-10-28 221447.png

  • AWS が管理する GitHub アプリを使用して正常に接続されましたの表示を確認後、リポジトリよりhogehogeをクリック

スクリーンショット 2024-10-28 221808.png

  • とりあえず、hogehogeリポジトリの設定が完了しました。hugahugaリポジトリも設定するためにソースの追加ボタンを押しましょう

  • ソース2下部のソース識別子にhugahugaを入力※このあとのBuildspec設定で利用します
    スクリーンショット 2024-10-28 222053.png

  • hogehogeリポジトリの設定と同じhugahugaリポジトリを設定しましょう

  • Buildspecの表示までスクロールしbuildspec ファイルを使用する左側のラジオボタンをクリックし、buildspec名の入力ボックスにbuildspec.ymlと入力する

スクリーンショット 2024-10-28 222337.png

  • 最下部のビルドプロジェクトを作成するボタンをクリックする

スクリーンショット 2024-10-28 222746.png

  • ビルドプロジェクトにTestが追加されていることを確認し、左側ペインのCodePipelineをクリック

スクリーンショット 2024-10-28 222917.png

CodePipeline設定

  • 上部のパイプラインを作成するボタンをクリック

スクリーンショット 2024-10-28 223041.png

  • CodePipeline設定画面が表示されるため、Build custom pipeline左側のラジオボタンをクリックし、次へボタンをクリック

スクリーンショット 2024-10-28 223119.png

  • パイプライン名を入力する(検証用のためTest)。それ以外はデフォルト設定でいいので、最下部の次へボタンをクリック

スクリーンショット 2024-10-28 223229.png

  • ソースプロバイダー下部のプルダウンをクリックし、**GitHub(バージョン2)**をクリック

スクリーンショット 2024-10-28 223417.png

  • 接続リポジトリ名およびデフォルトブランチを適宜設定。設定後、次へボタンをクリック

スクリーンショット 2024-10-28 223606.png

  • CodeBuild設定が求められるため、前の手順で作成したビルドプロジェクトを設定し、次へボタンをクリック

スクリーンショット 2024-10-28 223837.png

  • CodeDeploy設定画面が表示されるが、今回の要件では設定不要のため、導入段階をスキップボタンをクリック

スクリーンショット 2024-10-28 224131.png

  • 内容を確認し問題なければ、最下部のパイプラインを作成するボタンをクリック

スクリーンショット 2024-10-28 224233.png

上記設定でいったんCodeBuildとCodePipelineの設定が完了しましたが、hogehogeリポジトリにbuildspec.ymlを作成しないとパイプラインが失敗してしまいます。

スクリーンショット 2024-10-28 224829.png

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が動いているか確認しよう。

スクリーンショット 2024-10-28 225451.png

とりあえず、Pipelineは成功しているようですね。ログを見て、hogehogeリポジトリとhugahugaリポジトリの中身が双方はいっているか確認しよう。

スクリーンショット 2024-10-28 225539.png

入っている!!!
とりあえず、今回のゴールは達成できたな!!

まとめ

今回はリポジトリクローンを使わずに、CodeBuild上で他リポジトリブランチを取得する方法を簡単にまとめてみました。git cloneを使わずにCodeBuildの設定だけで複数リポジトリを取り込むことができるのは、運用視点でオイシイ印象を持ちました。

そのうえで、そこまでページ数が多くない手順でしたが思いのほか作成時間がかかったので、要点をまとめながら作成することが今後の課題かなぁと思いました!(AWSは奥深い~~)

参考サイト

AWS Buildspecユーザガイド
【初心者】CodeCommit, CodeDeploy, CodePipeline を使ってみる

最後まで記事を読んでいただきありがとうございます
本技術ブログは読者あってだと個人的に感じております。

読んでみて、「参考になった」と思った方はいいねストックをお願いいたします
引き続き、AWS含め、様々な技術に関するナレッジを共有したいと思います!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?