概要
2023年7月7日に、awsからAWS CodeBuildの機能アップデートが発表されました。
みんな大好き CodeBuild からどうやらGithub Actionsを呼び出せるとのことで、今回はどんな形で呼び出せるのかを検証してみました。
新機能: CodeBuild から Github Actions の呼び出し
- CodeBild では、buildspec というファイル(ビルド仕様)を使用し、CodeBuild の実行時にどんな処理をするのかを記述していきます。
例:
version: 0.2
run-as: Linux-user-name
env:
variables:
key: "value"
key: "value"
phases:
install:
run-as: Linux-user-name
runtime-versions:
runtime: version
commands:
- command
- command
pre_build:
run-as: Linux-user-name
on-failure: ABORT | CONTINUE
commands:
- command
- command
build:
run-as: Linux-user-name
commands:
- command
- command
post_build:
run-as: Linux-user-name
commands:
- command
- command
今回、github actions が呼び出せるようになったというのは、この buildspec 内で記述できる Steps内のどこか任意の phases で GitHub Marketplace で公開されているアクションを呼び出すことができるようになったというもののようです。
GitHub Marketplace
仕様
- GitHub Actions を使用するために、GitHub への接続は必須となります。これは、匿名ダウンロードにレート制限があるためそれを回避するために必要なようです。
- GitHub Actions の実行には追加料金はなしで利用ができます。
- GitHub Actions は、AWS GovCloud (米国東部)、 AWS GovCloud (米国西部)、 中国 (北京)、および 中国 (寧夏)を除くすべてのリージョンでサポートしています。
本機能の制限
-
GitHub のソースを追加、変更(プルリクエストを更新するアクションやissue作成をトリガーとするアクション)をしようとした際に動く GitHub Actions の動きは機能しません。
-
Docker コンテナアクションである GitHub Actions は昨日はするんですが、CodeBuildで作成したビルドプロジェクトは「特権モード」を有効にする必要があり、デフォルトの Docker ユーザー (root) によって実行する必要があります。
-
GitHub Actions は、Windows 上で実行するように構成されたビルドプロジェクトではサポートされていません。
-
GitHub Action は GitHubのパブリックリポジトリに設定されているWebhookによってトリガーされたビルドプロジェクトはサポートされていません、
-
パブリックなインターネットアクセスができないVPCに設定されている ビルドプロジェクトでは GitHub Actions を実行できません。
検証してみた
version: 0.2
phases:
build:
steps:
- name: Setup Golang
uses: actions/setup-go@v4
- run: go version
- goのセットアップが完了し、無事version情報まで確認することができましたね。
参考文献