12

我有一个大型的monorepo,里面有很多项目。我想要有许多构建工作,每个工作都使用 repo 中相关树中的构建规范。

例如,我有一个名为 Email 的 lambda 函数和一个名为 Web 的 java 应用程序。每个源树都是兄弟,我想在每个中放置一个构建规范,并让不同的作业使用不同的 buildspec.yml 文件。

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

4

3 回答 3

4

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

buildspec 路径是相对于 Git 存储库的根目录的。所以你可以使用,例如,./subdir/buildspec.yml

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

于 2017-08-17T18:26:34.990 回答
2

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

于 2017-10-26T00:10:30.263 回答
1

现在在使用控制台时也可以做到这一点,但它们并不容易找到。

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

FirstConsole编辑

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

CodeBuildReEdit

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

CodeBuildReEditSuccess

于 2018-03-24T11:39:58.547 回答