用一个执行程序在节点上运行并行阶段

时间:2018-08-07 19:16:08

标签: jenkins jenkins-pipeline

假设我有一个jenkins节点和一个执行程序,并且我必须同时运行测试和构建阶段。

node("jenkinsNodeWithOneExecutor") {

    parallel {
        test: {echo "run test" ... }
        build: {echo "run build" ...}
    }

}

这将如何工作?在日志中,我看到它并行运行。可能吗?我认为每个并行任务都需要自己的执行程序...

PS。尝试两次运行作业时:等待...上的下一个可用执行程序。

1 个答案:

答案 0 :(得分:1)

当您并行运行作业时,该作业将分支并创建两个(理想情况下)同时执行的不同作业。

在您的示例中,您实际上有三个作业:原始作业,“测试”作业和“构建”作业。您将需要三个执行程序来并行处理脚本。如果您要在同一节点上运行初始作业,而您要在其上运行并行作业,而您只有一个执行程序,则该作业将无限期地挂起,等待永远无法使用的执行程序。如果您在另一个节点上运行原始作业,则由于您只有一个执行程序,因此将按顺序处理作业。

确定要与构建并行运行测试吗?通常,测试取决于您构建的内容。这将在构建的同时运行测试,并且构建工件可能尚不可用。