【问题标题】:Allow project run on master only in teamcity仅允许在 teamcity 中的 master 上运行项目
【发布时间】:2019-09-14 19:36:39
【问题描述】:

我正在设置 teamcity,我有 2 个项目使用相同的 VCS 根目录构建和部署。

有没有办法:

  • 在除 master 之外的所有分支上触发构建项目
  • 仅在 master 上触发部署项目

我已将其设置为自动触发,但两个项目仍显示待定更改,用户仍可以在他们希望的任何分支上手动运行部署。

构建触发器分支过滤器:
+:*
-:<default>

部署触发器分支过滤器:
+:<default>
-:*

是否需要使用不同的分支规范配置两次 VCS 根?

如果我还需要什么,请告诉我。

感谢您的帮助。 库尔蒂斯

【问题讨论】:

  • 你想部署master,但不触发构建master是否正确?
  • 是的。因此,部署项目构建、测试和打包项目。构建项目只是构建和测试。谢谢
  • 如果不部署分支,建立分支的原因是什么?
  • 我希望其他分支能够构建并运行测试,以便我们可以立即查看分支是否可以安全地合并到 master。我在合并请求之前和在合并请求中使用过 GitLab CI,如果该分支的构建失败,您将无法将其合并。

标签: continuous-integration teamcity


【解决方案1】:

不幸的是,你不能。

但你必须做到以下几点:

  • 删除用户运行BuildDeploy 配置的能力。
  • Build 设置触发器+:*; -:<default>

我希望 Deploy 具有来自 Build 的依赖项。

  • 创建新的部署配置,比如说Deploy only master
  • Deploy添加快照依赖
  • 用值<default>定义隐藏变量reverse.dep.*.teamcity.build.branch

所以,没有人不能运行 Build 和 Deploy。如果有人运行 Deploy only master 并选择另一个分支,它将不起作用,因为您会将 teamcity.build.branch 替换为 master

【讨论】:

  • 我明白了,上面听起来我会得到我想要的,但我只是不确定如何定义隐藏变量。?感谢您的帮助!
  • 要将规范添加到构建参数,请在编辑/添加构建参数时单击规范区域中的编辑按钮。显示:如果指定隐藏,参数将不会显示在运行自定义构建对话框中,但会被发送到构建;如果指定了提示,则 TeamCity 在单击“运行”按钮时将始终要求查看参数值(如果自动触发构建则不需要该参数);如果选择正常,参数将照常显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 2011-07-06
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
相关资源
最近更新 更多