Open3
AWS CodeBuild で Go プロジェクトの CI をする
AWS CodeBuild で Go のプロジェクトの CI をやったので、記録する。
利用する Docker イメージ
CodeBuild は公式でいくつかの Docker イメージを提供していて、今回はその中から Amazon Linux 2023
を採用。採用理由は、本番環境が al2 だったから。
環境イメージに aws/codebuild/amazonlinux2-aarch64-standard:3.0
を設定すればOK
Buildspec
Point
- Go 1.21.0 は公式イメージにインストールされていないので自分でインストールする必要がある
version: 0.2
env:
variables:
GOLANG_21_VERSION: "1.21.0"
phases:
install:
# runtime-versions:
# golang: 1.20
commands:
- wget https://go.dev/dl/go${GOLANG_21_VERSION}.linux-arm64.tar.gz -O /tmp/golang.tar.gz
- tar -xzf /tmp/golang.tar.gz -C /tmp
- mv /tmp/go /usr/local/go21
- rm -rf /usr/local/go
- ln -s /usr/local/go21 /usr/local/go
build:
commands:
- make build
- make lint
- make test
install phase は 公式 Docker イメージの Dockerfile を参考にした(チェックサムの検証は省いたが、やった方が良いです...)。
参考情報
Go 1.20 の場合
- Go 1.20 &
aws/codebuild/amazonlinux2-aarch64-standard:3.0
環境の場合も、Buildspec の工夫が必要。 - Go 1.20 の symlink が間違っているので Buildspec 内ではりなおす
version: 0.2
phases:
install:
commands:
- rm -rf /usr/local/go
- ln -s /usr/local/go20 /usr/local/go
build:
commands:
- make build
- make lint
- make test
修正するPRはすでに上がっているので待ち
一応あとで記事化するか