5

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

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

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

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

非常感谢。

4

2 回答 2

11

如果您是 CodeBuild 中的 GitHub Webhook,您现在可以file_path选择仅在特定文件或目录发生更改时触发构建。

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

于 2019-09-07T14:26:23.717 回答
2

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

对于 GitHub,对于可选的源版本值,键入与您要构建的源代码版本相对应的提交 ID、拉取请求 ID、分支名称或标签名称。如果指定了拉取请求 ID,则它必须使用格式 pr/pull-request-ID(例如,pr/25)。如果指定了分支名称,则将使用分支的 HEAD 提交 ID。如果 Source version 为空,将使用默认分支的 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

于 2017-06-07T20:38:19.157 回答