数年前に投稿した AWS CodePipeline でサブモジュールを使う方法を力技ではなくてもっと簡単にできる方法があったので紹介していきます。
何ができるようになったか?
ソースステージで git リポジトリのメタデータを取得することができるようになっていたようです。
AWS CodeCommit の AWS CodePipeline ソースアクションで git クローンのサポートを開始
チュートリアル: CodeCommit パイプラインソースでフルクローンを使用する - AWS CodePipeline
CodePipeline に CodeCommit ソースアクションを追加して、CodeBuild がパイプライン構築アクションで Git メタデータにアクセスできるようにします。
CodePipeline の [出力アーティファクト形式] で [完全クローン] を選択するだけで利用できます。
これにより、submodule を sync するためだけにメインのリポジトリを clone し直す必要がなくなったのです。
CodeBuild で利用する場合の Buildspec は以下です。
version: 0.2
phases:
pre_build:
commands:
- git config --global credential.helper '!aws codecommit credential-helper $@'
- git config --global credential.UseHttpPath true
- git submodule sync
- git submodule update --init
artifacts:
files:
- '**/*'
前回のものと比べると短くなってスッキリしました。