【发布时间】:2020-11-16 20:43:47
【问题描述】:
有没有办法在构建配置从队列中分配给代理后更改它? 我希望的工作流程:
change in vcs root -> queue up 'run tests' -> if Agent A, run 'run tests', if Agent B, run 'run tests in Docker'
更多上下文:我有一个我维护的 teamcity 实例,但没有管理员访问权限。这意味着我无法在服务器上安装我需要的东西。我们在某些构建代理服务器上进行了某些安装。我创建了不同版本的“运行测试”构建配置,这样它就可以在所有可用的代理上运行。这是一个相当简单的区别:测试套件使用一个构建配置(在默认代理上)定期运行,并在其他(在其他两个构建服务器上)的 docker 容器中运行。并非所有服务器都安装了 docker。
需要明确的是,这些构建配置彼此不连续——它们是相同的构建配置,但版本不同。我不希望两个作业都监听 vcs 更改 - 因为这将启动两个构建配置。我只是想在运行之前但在队列之后放置一个条件,但是数据流似乎是一种方式(排队作业,然后分配给代理)。
【问题讨论】:
-
据我了解,您希望在默认代理以及您可以控制的代理上运行单个构建配置。几个问题:1)您的“在 Docker 中运行测试”构建步骤是否添加了默认代理无法满足的隐式代理要求? 2) 你对默认代理的 buildAgent.properties 文件有写权限吗?
-
@tolache 我配置了代理要求,以便 docker 作业将在安装了 docker 的服务器上运行,反之亦然。我确实有对道具文件的写访问权限是的。这不是确保正确的工作在正确的服务器上运行的问题——我已经涵盖了代理要求。相反,我正在尝试有效地配置自定义触发器,以便在确定将在其上运行的代理之后,将正确版本的“运行测试”排队。
标签: continuous-integration teamcity