ブログが続かない人のブログ

技術ネタについて書いていきたいです。

AWS CodeBuildとGitHubを連携させる

AWSを使ってCI環境を構築してみようと思い探していると、こんなサンプルを見つけました。

docs.aws.amazon.com

今回はこれを参考にして構築してみたログです。

ビルドプロジェクトの作成

AWS CodeBuildのページへ行き、「プロジェクトの作成」をクリックします。

f:id:tsukumaru:20200528231720p:plain

プロジェクト名は任意の名前を入力します。

次のソースでは「GitHub」を選択します。 このとき、GitHubのアクセストークンを登録していなければ、GitHubからアクセストークンを取得し保存します。

f:id:tsukumaru:20200528233751p:plain

💡

アクセストークンはGitHubの、「Settings / Developer settings / Personal access token」 から取得できます。

権限のスコープは、以下の2つをチェックします。 (参考)

  • repo
  • admin:repo_hook
f:id:tsukumaru:20200528234106p:plain

トークンを登録すると項目が変わるので、リポジトリとブランチを設定します。

f:id:tsukumaru:20200528234702p:plain

リポジトリへの push に hook させるために「コードの変更がこのリポジトリにプッシュされるたびに構築する」のチェックを入れます。

ここが今回のキモです

f:id:tsukumaru:20200528234811p:plain

環境は任意なもので大丈夫です。

💡

マネージド型イメージは、CodeBuildで管理されているDockerイメージです。

イメージの一覧は以下のリンクから確認できます。

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-available.html

f:id:tsukumaru:20200528235341p:plain

Buildspecは、今回は「buildspecファイルを使用する」の方にします。

f:id:tsukumaru:20200528235937p:plain

残りのアーティファクトとログは特に設定なしで大丈夫です。

設定が完了したら「ビルドプロ ジェクトを作成する」で作成します。

buildspec.ymlの作成

さきほど設定したリポジトリのルートに buildspec.yml を作成します。

構文は以下のドキュメントにまとまっています。

docs.aws.amazon.com

今回は、特にビルドですることがないので、シンプルな形で設定してみます。

version: 0.2

run-as: test-user

https://github.com/tsukumaru/SampleCodeBuildProject/blob/3306d0ce416a7b1b3d8b7b504d45c833d2631e64/buildspec.yml

push する

実際に push して動くかを確かめます。

push 後に CodeBuild 内のプロジェクトのステータスが「進行中」になっていればOKです。

f:id:tsukumaru:20200529001430p:plain

まとめ

AWS CodeBuild を GitHub に連携させてみました。
今回はかなりシンプルな例で、buildspec.yml もほぼ書いていないので、もっと複雑な構成の中でも使っていきたいですね