带有 GitHub 的 AWS CodeBuild - 仅适用于特定目录

Ily*_*nov 4 github amazon-s3 amazon-web-services aws-codebuild

我正在尝试使用 AWS Pipeline、S3 和 CodeBuild 为 Angular 2 应用程序设置自动部署。

按照 Andrés 的教程,我能够将 CodeBuild 连接到 GitHub 存储库,并且该过程运行良好。

然而,我们的 Angular 应用程序位于更大的 repo 的子目录中。

有没有办法在 repo 中指定一个目录,以便只有在子目录更改时才会触发构建?

非常感谢。

Sub*_*hew 11

如果您是 CodeBuild 中的 GitHub webhooks,您现在有一个file_path选项,它允许您仅在特定文件或目录发生更改时触发构建。

文档:https : //docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html#sample-github-pull-request-filter-webhook-events-console

  • @IlyaKrasnov 这应该是现在公认的答案。 (3认同)
  • 感谢您的链接,它对于 codebuild 工作得很好,但是当我将 codebuild 连接到 codepipeline 时,codepipeline 会忽略 codebuild 上的 file_path 触发器。代码管道将由对存储库的任何推送触发。您知道是否有任何方法可以通过 file_path 限制 codepipeline 触发? (2认同)

str*_*gjz 2

看起来您不能只下拉某个文件夹,但构建规范的工件您可以指定用于构建的目录。

对于 GitHub,对于可选的源版本值,输入与要构建的源代码版本相对应的提交 ID、拉取请求 ID、分支名称或标记名称。如果指定拉取请求 ID,则必须使用 pr/pull-request-ID 格式(例如 pr/25)。如果指定了分支名称,则将使用该分支的 HEAD 提交 ID。如果源版本为空,则将使用默认分支的 HEAD 提交 ID。

http://docs.aws.amazon.com/codebuild/latest/userguide/run-build.html

工件 可选序列。表示有关 AWS CodeBuild 在哪里可以找到构建输出以及 AWS CodeBuild 如何准备将其上传到 Amazon S3 输出存储桶的信息。例如,如果您正在构建 Docker 映像并将其推送到 Amazon ECR,或者您正在对源代码运行单元测试但不构建它,则不需要此序列。文件:所需的顺序。表示构建环境中包含构建输出工件的位置。包含一系列标量,每个标量代表一个单独的位置,AWS CodeBuild 可以在其中找到相对于原始构建位置的构建输出项目。位置可以包括以下内容: 单个文件(例如 my-file.jar)。子目录中的单个文件(例如 my-subdirectory/my-file.jar 或 my-parent-subdirectory/my-subdirectory/my-file.jar)。' / ' 代表递归所有文件。my-subdirectory/表示名为 my-subdirectory 的子目录中的所有文件。my-subdirectory/ /* 表示从名为 my-subdirectory 的子目录开始递归的所有文件。

http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

  • 现在你有两个问题;-) (4认同)