我们从 CruiseControl.NET 迁移到 Jenkins 只是为了与合作伙伴同步,因此我们没有两个不同的 CI 脚本。我们正在尝试设置 Jenkins 来执行类似于 CruiseControl 所做的事情,即在远程构建机器上使用集中式服务器调用项目(jenkins 中的作业)。
我们有多个构建机器与单个项目相关联,因此当我们从集中式 CI 服务器构建项目时,它将调用远程 CI 服务器上的项目。远程 CI 服务器将从集中式 CI 服务器项目中提取版本。
在 CruiseCruise 控件中,我们设置了一个可以forceBuild
在远程项目上执行的项目。构建机器上的项目使用 aremoteProjectLabeller
来检索版本号,因此它们始终保持同步。
要检索主版本号:
<labeller type="remoteProjectLabeller">
<project>MainProject</project>
<serverUri>tcp://central-server:21234/CruiseManager.rem</serverUri>
</labeller>
调用远程项目:
<forcebuild>
<project>RemoteBuildMachineA</project>
<serverUri>tcp://remote-server:21234/CruiseManager.rem</serverUri>
<integrationStatus>Success</integrationStatus>
</forcebuild>
到目前为止,在 jenkins 中,我已经使用 java web start 将辅助服务器设置为从属服务器,但我不知道如何让 jenkins 主服务器调用从属服务器上的项目设置。
我可以设置 Jenkins 在从站上调用项目(作业)吗?
我可以让奴隶从主人那里拉取版本号吗?
编辑 -
让我添加更多信息。
- 主机和远程构建机器从机都在运行 Windows。
- 我们让中央主控 CruiseControl 同时启动远程项目,因此它们同时运行,并且如果可能的话,希望与 jenkins 有同样的事情。