因此,我们有一项工作,将生成我们构建所需的一些内容。它像5个不同的脚本一样连续运行,这些脚本将生成内容,提交,然后推送到特定分支上的存储库。我们针对3个不同的分支运行这些脚本。
我们在不同的jenkins机器上并行运行这些脚本(没有共享工作空间)。
流程如下:
1.在主目录中查找repo(同样,此目录不会与其他并行运行的机器共享),并 checkout /拉/重置到所需的分支
1.将repo复制到工作区中以执行构建操作(我们将repo拷贝到工作区,因为repo太大了,jenkins从头克隆它需要1000万)
1.运行脚本#1
1.git commit-m“”
1.git推送
1.git清理-df
1.从步骤3开始重复,直到完成所有脚本。
这是当它们并行运行时我们得到的错误。注意,如果我们一次只做一个分支,这项工作就非常好。
命令:git push Exitcode:1标准输出:错误流:到<repo>![rejected]release/->release/(fetch first)错误:无法将某些引用推送到“”提示:更新被拒绝,因为远程包含您提示的工作:本地没有。这通常是由另一个存储库推送提示导致的:到同一个ref。在再次推送之前,您可能需要首先集成远程更改提示:(例如,“git pull…”)。提示:有关详细信息,请参阅“git push--help”中的“关于快进的注解”。
这个错误看起来像是因为他们都在同一时间推进,存在某种冲突,但我认为只有当我们推进到同一个分支时才会出现这种情况?这些都是3个不同的分支。似乎有一个分支成功了,但其他分支都失败了,所以我认为很明显,这种并行性导致了问题,但我不明白为什么它在不同的机器上运行,在不同的分支上运行。
1条答案
按热度按时间yeotifhr1#
好吧……这里有一个想法……避免3次推送,并在完成第3次提交后进行一次推送……如下所示:
这有意义吗?