首页 > 解决方案 > 如何允许 AWS CodeCommit 从每个分支触发管道?

问题描述

目前,AWS CodeStar 设置默认 python 项目的方式是定义一个带有初始源阶段的管道,如下所示; 在此处输入图像描述

这里的分支名称是master,因此每当有新的更改合并到主分支时,管道就会触发。我还成功尝试将分支名称更改为SLS-2并在推送此分支上的提交时触发管道SLS-2......太棒了!但我想要的是在任何分支的每一次提交上运行管道。当然,在那之后,根据天气设置手动和自动阶段,分支是否是主分支。

我知道在 GitLab 中,我们可以通过标签指定每个阶段

  stage: dockerize
  script:
    - echo 'I will run this only on master branch'
  only:
    - master
    - tags

或者我可以添加except标签- master以允许在除 master 之外的所有分支上触发此阶段。如何使用 AWS CodePipeline 做到这一点?请建议。

标签: amazon-web-servicesaws-codepipelineaws-codebuildaws-codecommit

解决方案


CodePipeline 最适合发布自动化,在使用 CodePipeline 时,建议使用一个“发布”分支,将准备发布的更改合并到其中。

拥有一个“主版本”分支将确保您不会遇到问题,例如意外地将一个分支中的旧更改部署到不同分支中的新更改之上,从而恢复新更改。

如果您想在合并到发布分支之前运行验证步骤,那么一个不错的选择是将 CodeBuild 与 CodePipeline 结合使用。例如,您可以将 CodeBuild 配置为在拉取请求上自动运行

您还可以在合并拉取请求后在 CodePipeline 中重复使用相同的 CodeBuild 配置来运行相同的构建和测试步骤作为发布过程的一部分。


推荐阅读