假设您有一个gitlab实例,它已经通过gitlab Jenkins插件等使用Jenkins进行所有CI构建.Jenkins安装程序有一个适度的构建从属集合,提供各种平台等等。每个slave都是设置为一次只运行一个作业(即Jenkins作业获得对构建从属的独占访问权限,这很重要,因为我不会在这里讨论)。
现在假设你想考虑使用gitlab自己的原生CI支持,将一个或多个项目转移到gitlab而不是Jenkins。 gitlab CI需要使用相同的构建从属集,但它需要与Jenkins一起使用,并且两者需要合作,这样如果一个人在特定的奴隶上运行一个工作,另一个人就不会提交一份工作。同一个奴隶直到第一次完成。实际上,当Jenkins在奴隶上运行工作时,gitlab应该看到奴隶不可用,反之亦然。
任何人都有工作方法让gitlab告诉Jenkins当它在那里运行CI作业时使用奴隶,反之亦然?该方法不一定是100%防弹,如果gitlab和Jenkins同时在同一个奴隶上运行作业,如果这是一个罕见的事件,则可能是可以的(即,如果是竞争条件可能被容忍的话发生的频率可能很低。)
其他信息: