防止TeamCity中的意外构建

Dan*_*Dan 12 teamcity

我想创建一个手动触发的Team City构建,将我们的网站部署到其实时环境中.我这样做犹豫不决,因为我担心人们不小心触发了构建.

我知道我可以通过阻止大多数人访问或者使部署过程稍微困难来解决这个问题,例如两个步骤.

有没有更好的技术?有可能有'你确定吗?' 风格对话?

zck*_*zck 25

首先,你应该采取John Hoerr的建议并阻止人们运行它,除非他们是极少数人.

但我们可以做得更好,并防止应该能够运行构建的人员的错误错误点击.添加一个复选框配置参数.这样,当某人点击"运行"按钮时,它将很快失败.他们必须点击运行按钮上的省略号,然后点击消息旁边的复选框,你确定吗?.

为此,请添加名称为的参数confirm,然后点击编辑链接.在弹出窗口中,单击Spec旁边的编辑按钮.将类型更改为.将选中的值设置为,并将未选中的值设置为.或者其他一些对你有意义的价值观.Checkboxtruefalse

单击Save以保存规范,然后返回" 编辑参数"弹出窗口.将设置为false.这是复选框的默认值.

作为脚本中的第一件事,检查参数%confirm%是否设置为字符串"true"或是否设置为"false".如果"false"你想exit 1立即:运行构建的人没有勾选confirm复选框.

如果需要,您可以每次都出现Run Custom Build弹出窗口.为此,在Edit parameter specification窗口中,将显示更改为Prompt.默认值仍然是不进行部署,但每次都会弹出对话框.

您还可以使文本框旁边显示的标签不是参数的名称,而是任意字符串.在Edit parameter specification弹出窗口中,让labelPinky的东西发誓你想要这样做吗?

  • 我做了一些非常类似于此的事情,除了我已经要求部署人员在生产部署中键入目标域. (2认同)
  • 刚刚使用 Teamcity 2022.04(内部版本 108502)测试了此解决方案,如果您按照说明操作并将“编辑参数”窗口中的默认值定义为 false,这将阻止您下次单击运行时选中该复选框。因此,您始终必须选中该复选框。 (2认同)

Joh*_*err 3

我认为通过使用 TeamCity 的基于角色的访问来阻止大多数人运行生产部署,您的做法是正确的。对于有特权的团队成员,我鼓励他们从仪表板中隐藏/删除“部署到产品”配置。您可以通过单击配置右侧的X来完成此操作。这对我们来说是防止偶然误点击的有效方法。当您确实想要运行Deploy to Prod构建时,您可以通过项目页面直接浏览到它。