如何在不同的目录中拥有多个CodeBuild buildspec文件?

时间:2017-08-16 21:20:40

标签: aws-codebuild

我有一个大型的monorepo,里面有很多项目。我希望有许多构建作业,每个作业都使用repo中相关树中的buildspec。

例如,我有一个名为Email的lambda函数和一个名为Web的java应用程序。每个源代码树都是兄弟姐妹,我想在每个源代码中放置一个buildspec,并使用不同的buildspec.yml文件进行不同的工作。

我找不到一种方法来完成这项工作,因为作业中指定的buildspec文件的名称必须位于repo的根目录下(它是一个git repo)。

3 个答案:

答案 0 :(得分:2)

您可以在buildspecbuildspecOverride参数中为Create / UpdateProject或StartBuild指定备用的构建规范位置。

buildspec路径相对于Git仓库的根目录。因此,您可以使用例如./subdir/buildspec.yml

您可以在此处找到文档:https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage

答案 1 :(得分:2)

现在有一种方法可以通过控制台更改CodeBuild项目的buildspec路径。编辑项目(控制台网址为https://[region-name].console.aws.amazon.com/codebuild/home?region=[region-name]#/projects),然后在"环境:如何构建"这里有一个名为" Buildspec name"的参数。将其设置为相对于根目录的buildspec.yml文件的路径。

答案 2 :(得分:0)

使用控制台时, 现在是可行的,但它们不易于查找。

  • 当您第一次配置构建时,控制台将为您提供指定自定义构建规范文件名/位置的选项。相反,在“环境:如何构建”部分中,正常选择Use the buildspec.yml in the source code root directory选项并保存构建项目。

FirstConsoleEdit

  • 然后您就可以返回并重新编辑项目了。完成后,您将看到“环境:如何构建”部分现在有一个名为“更新构建规范”的链接。

CodeBuildReEdit

  • 单击“更新构建规范”链接,将打开一个包含“Buildspec Name”输入的部分,您可以在其中输入buildpec文件的自定义名称/路径。

CodeBuildReEditSuccess