CodeBuildでソースにGitHubを指定した場合のビルドで、
- 直接CodeBuildで「ビルドの開始」を押した時
- CodePipelineのBuildから実行された時
のそれぞれで、ファイルパーミッションが変わってしまっている?という話です。
Java(Gradle)でビルドするジョブで、後者の場合 gradlew
の実行権限が付与されていないために、ビルドエラーになることで気づきました。
buildspec.yml
以下のように、buildフェーズの際にカレントディレクトリのファイル一覧を出力させてデバッグします。
version: 0.2 phases: build: commands: - ls -la - ./gradlew bootJar artifacts: files: - build/libs/*.jar cache: paths: - '/root/.gradle/**/*'
直接実行
gradlew
に実行可能権限が付いています。
CodePipeline経由で実行
gradlew
に実行可能権限が付いていません。
実行前に付与してあげれば済むはずですが、一応覚えておきたいポイントだなと思いました。