为 SBT 增量编译设置代码构建输出源文件夹
Setting codebuild output source folder for SBT incremental compile
我很好奇您是否可以控制 AWS CodeBuild 中的输出 "src" 文件夹。
具体来说,我在调试 CodeBuild 中的构建时看到了这一点。
/codebuild/output/src473482839/src/github.....
我希望能够 set/change/remove 该路径的 src473482839
部分,因为我感觉它会导致我的 sbt 重新编译我的 scala 源文件,尽管我使用的是 CodeBuilds新的 localcache 用于在构建之间缓存我的目标文件夹,编译的 class 的规范路径在构建之间发生变化,这就是我 导致问题的原因
经过更多调试后,我成功地将 6 分钟的构建时间缩短到了 1:30s。
尽管您无法设置或覆盖 CODEBUILD_SRC_DIR
我在我的构建规范中找到了解决方法。
这就是我的构建规范现在的样子,在代码构建中启用了本地缓存。
version: 0.2
phases:
pre_build:
commands:
- mkdir -p /my/build/folder/
- cp -a ${CODEBUILD_SRC_DIR}/. /my/build/folder
build:
commands:
- cd /my/build/folder
- sbt compile test
cache:
paths:
- '/root/.ivy2/cache/**/*'
- '/root/.cache/**/*'
- 'target/**/*'
- 'any other target folders you may need'
我必须做出的关键更改是在 pre_build 阶段复制源代码(缓存的目标目录),然后更改目录并从新的静态目录编译
我希望这能帮助其他人,直到 CodeBuild 允许一个人set/override CODEBUILD_SRC_DIR
文件夹
我很好奇您是否可以控制 AWS CodeBuild 中的输出 "src" 文件夹。
具体来说,我在调试 CodeBuild 中的构建时看到了这一点。
/codebuild/output/src473482839/src/github.....
我希望能够 set/change/remove 该路径的 src473482839
部分,因为我感觉它会导致我的 sbt 重新编译我的 scala 源文件,尽管我使用的是 CodeBuilds新的 localcache 用于在构建之间缓存我的目标文件夹,编译的 class 的规范路径在构建之间发生变化,这就是我
经过更多调试后,我成功地将 6 分钟的构建时间缩短到了 1:30s。
尽管您无法设置或覆盖 CODEBUILD_SRC_DIR
我在我的构建规范中找到了解决方法。
这就是我的构建规范现在的样子,在代码构建中启用了本地缓存。
version: 0.2
phases:
pre_build:
commands:
- mkdir -p /my/build/folder/
- cp -a ${CODEBUILD_SRC_DIR}/. /my/build/folder
build:
commands:
- cd /my/build/folder
- sbt compile test
cache:
paths:
- '/root/.ivy2/cache/**/*'
- '/root/.cache/**/*'
- 'target/**/*'
- 'any other target folders you may need'
我必须做出的关键更改是在 pre_build 阶段复制源代码(缓存的目标目录),然后更改目录并从新的静态目录编译
我希望这能帮助其他人,直到 CodeBuild 允许一个人set/override CODEBUILD_SRC_DIR
文件夹