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

时间:2017-06-07 10:54:35

标签: amazon-web-services github amazon-s3 aws-codebuild

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

关注Andrés'tutorial我能够将CodeBuild连接到GitHub仓库并且流程运行良好。

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

有没有办法在repo中指定目录,这样只有在子目录发生变化时才会触发构建?

非常感谢。

3 个答案:

答案 0 :(得分:1)

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

  

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

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

  

artifacts可选序列。表示有关AWS CodeBuild可以在何处找到构建输出的信息,以及AWS CodeBuild将如何准备以上载到Amazon S3输出存储桶的信息。例如,如果您正在构建Docker镜像并将其推送到Amazon ECR,或者您正在对源代码运行单元测试但未构建它,则不需要此序列。   files:必需的序列。表示构建环境中包含构建输出工件的位置。包含一系列标量,每个标量代表一个单独的位置,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

答案 1 :(得分:1)

除了 strongjz 中已标记的答案外,我们还可以使用CodeBuild Caching指定不需要反复下载的目录以避免构建改善性能。

参考链接:https://aws.amazon.com/blogs/devops/improve-build-performance-and-save-time-using-local-caching-in-aws-codebuild/

注意:没有足够的声誉来发表评论,因此将其发布为答案。

答案 2 :(得分:1)

如果您是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