我正在尝试使用AWS Pipeline,S3和CodeBuild为Angular 2应用设置自动部署。
关注Andrés'tutorial我能够将CodeBuild连接到GitHub仓库并且流程运行良好。
但是,我们的Angular应用程序位于更大的repo的子目录中。
有没有办法在repo中指定目录,这样只有在子目录发生变化时才会触发构建?
非常感谢。
答案 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指定不需要反复下载的目录以避免构建改善性能。
注意:没有足够的声誉来发表评论,因此将其发布为答案。
答案 2 :(得分:1)
如果您是CodeBuild中的GitHub Webhooks,则现在有一个file_path
选项,该选项仅允许您在更改特定文件或目录时触发构建。