首页 > 解决方案 > 如何在同一执行器上从 Jenkins 流水线运行作业(声明式语法)

问题描述

我想使用 Jenkins“PRQA”插件,它似乎没有从管道中使用它的选项。该插件将运行静态代码分析并发布结果。就我而言,它需要在管道作业中已经完成的一些准备工作。因此,我想将作业包含到该管道中,但在同一个执行器上,管道准备的数据作为某种内联作业步骤。

我试图为 PRQA-Plugin-Step 创建一个作业,并使用管道中的构建步骤执行它。但这试图在一个新的执行者上开始工作(并且因为我只有一个执行者而停滞不前)。

pipeline {
   agent any
   stages {
      stage('Build') {
         steps {
            echo 'Prepare'
         }
      }
      stage('SCA') {
         steps {
           //Run this without using a new executor with the Environment that exists now
           build 'PRQA_Job'
         }
      }
   }
}

在与当前工作目录相同的执行程序上运行作业的正确方法是什么。

标签: jenkinsjenkins-pipelinejenkins-pluginsjenkins-declarative-pipeline

解决方案


指定build 'PRQA_Job'后无法在同一个执行器上运行第二个作业(1 个作业 = 1 个执行器),因为主要作业只是在等待触发的作业完成。但是您可以在具有多个执行程序的同一代理上运行另一个作业,以从主要作业访问工作区。

对于测试 porpose 在两个作业中指定代理名称:agent 'agent_name_here'


推荐阅读