AWS CodePipeline可以跟踪多个功能分支并在每个分支上运行测试吗?

aid*_*ald 25 git continuous-integration amazon-web-services

使用Bitbucket和Bamboo,我能够让Bamboo跟踪每个功能分支并对每个功能分支运行测试,以便在拉取请求时,我能够看到分支是否通过了单元测试.

使用AWS CodePipeline,我无法判断我是否能够跟踪每个功能分支并在合并之前对它们运行测试.

这可能吗?如果是这样,请指出我的文件.

mat*_*516 13

不幸的是,似乎无法在本地触发CodePipeline中多个分支的构建.这对我来说有点意外,因为我使用过的其他CI工具都提供了开箱即用的功能(GitLabCI,TravisCI,CircleCI,Bitbucket Pipelines,TeamCity)或者经过实战测试的插件(Jenkins).

但是,现在可能有多种方法可以解决这个限制,这是我发现并可能使用/适应的方法:https://github.com/nicolai86/awesome-codepipeline-ci

我有同样的问题,我现在正在努力.:)


Mar*_*s R 7

CodePipeline 不是适合您的工具。创建一个单独的、独立的 CodeBuild 项目。它将与 Travis 等其他 3rd 方 CI 服务非常相似。

确保选择“每次将代码更改推送到此存储库时重新构建”源设置。这将触发从推送到任何分支以及其他网络钩子事件的构建,例如。创建了 PR。您还可以创建过滤器来管理它们。

您可以通过多种方式将此“CI 阶段”连接到持续交付管道,这就是 CodePipeline 的用途:

  1. 最简单的方法是使用 CodeBuild 作为将更改推送到管道源分支(通常是 master)的门。
  2. 您还可以将在 CodeBuild 中创建的工件推送到 ECR 或 S3,并从这些事件触发管道。
  3. 如果您想变得复杂,请使用其他一些jiggery pokery,例如。SQS 和 Lambda。

我也有同样的困惑,因为 CodeBuild 和 CodePipeline 是紧密相连的,但也是独立的工具。CodePipeline 确实使用 CodeBuild,但每个都有自己的 Git 连接器,其工作方式不同。


Bra*_*don 5

我一直在寻找解决此问题的方法。最终,我决定拥有一个可以从分支正则表达式触发的CodeBuild,通过将存档推送到特定的S3键来开始管道。就我而言,我还让CodeBuild进行了完整的构建/测试过程,但您也可以将CodeBuild配置为仅提取代码并将其推入触发CodePipeline的S3键。

这是匹配2个分支的示例CodeBuild配置的一部分: 显示匹配2个分支的<code> Branch过滤器</ code>的示例

然后,我将CodeBuild工件设置为转到单个存储桶中的单个键。

然后,我使用指向相同密钥/存储桶的Amazon S3源设置了CodePipeline。

  • 您能提供有关分支正则表达式的更多信息吗?可以举个例子。我没见过这个。那可能是完美的。 (3认同)
  • codeBuild 中没有“分支过滤器”选项。 (3认同)
  • @ aidan.plenert.macdonald仅适用于BitBucket,Github和GitHub企业,并且当您使用自己的存储库而不是公共存储库时(https://docs.aws.amazon.com/codebuild/latest/userguide/create- project.html) (2认同)