我得到了一个保存Jenkins WORKSPACE变量的WS变量。在各个阶段,我总是检查WS == WORKSPACE Jenkins通用变量。我看到在并行运行期间(当在C:/jenkins/workspace@1和C:/jenkins/workspace@2中创建2个不同的工作空间时,$WORKSPACE在这2个并行构建之间交换。x1c 0d1x
这个问题很少重现,不到10%的病例,但我觉得很奇怪,对于上图-〉第一个工作区,其AVB_Aplicattions_BOSCH-3经历3个阶段,在第4个阶段,$WORKSPACE变量与AVB_APLICATTIONS_BOSCH-4交换(另一个并行构建)。如果我查看另一个构建(AVB_APLICATTIONS_BOSCH-4我将看到相同的问题-〉工作空间变为AVB_APLICATTIONS_BOSCH-3)。在这个编译过程中,我使用cmake文件编译,我担心结果会不正确。我想在每个阶段使用in build dir()函数,以确保我在同一个工作区。有人知道这种情况下的好方法,以及为什么会发生这种情况?我不想停用并行的编译。
1条答案
按热度按时间xnifntxz1#
问题是Jenkins变量作用域在并行阶段中并不安全(参见更多来源/链接)。实际上有几个问题和答案(以及解决方案),如何在使用并行阶段时使用变量。不要使用全局变量,但要特别注意使用
def
定义局部变量以限制其作用域:Jenkins社区链接: