当前位置: 首页 > 面试题库 >

Access Stage在工作流/管道插件中产生结果

高泳
2023-03-14
问题内容

我有一个不同阶段的管道。我希望当前作业检查上一个版本中经过了多少个阶段并将其记录在控制台中?

考虑这是我当前的管道

node(){
 stage "1"
 do something

 stage "2"
 do something else
}

我想要一个时髦的脚本给我这样的东西

println currentBuild.previousBuild.getStage("1").result

我的代码的目的是跟踪构建过程中不同阶段的成功与失败。有没有其他替代方法?


问题答案:

您绝对可以使用Pipeline REST API插件,对我来说,Jenkins 2.13 可以直接使用它。

通过解析结果JSON,您可以获得与您期望的状态类似的阶段状态。对于api调用,我个人使用http_request插件。

从文档GET / job /:job-name /:run-id / wfapi / describe返回:

{
    "_links": {
        "self": {
            "href": "/jenkins/job/Test%20Workflow/16/wfapi/describe"
        },
        "pendingInputActions": {
            "href": "/jenkins/job/Test%20Workflow/16/wfapi/pendingInputActions"
        }
    },
    "id": "2014-10-16_13-07-52",
    "name": "#16",
    "status": "PAUSED_PENDING_INPUT",
    "startTimeMillis": 1413461275770,
    "endTimeMillis": 1413461285999,
    "durationMillis": 10229,
    "stages": [
        {
            "_links": {
                "self": {
                    "href": "/jenkins/job/Test%20Workflow/16/execution/node/5/wfapi/describe"
                }
            },
            "id": "5",
            "name": "Build",
            "status": "SUCCESS",
            "startTimeMillis": 1413461275770,
            "durationMillis": 5228
        },
        {
            "_links": {
                "self": {
                    "href": "/jenkins/job/Test%20Workflow/16/execution/node/8/wfapi/describe"
                }
            },
            "id": "8",
            "name": "Test",
            "status": "SUCCESS",
            "startTimeMillis": 1413461280998,
            "durationMillis": 4994
        },
        {
            "_links": {
                "self": {
                    "href": "/jenkins/job/Test%20Workflow/16/execution/node/10/wfapi/describe"
                }
            },
            "id": "10",
            "name": "Deploy",
            "status": "PAUSED_PENDING_INPUT",
            "startTimeMillis": 1413461285992,
            "durationMillis": 7
        }
    ]
}


 类似资料:
  • 由于一些公司的变化,我们被迫改用詹金斯作为CI工具。虽然这似乎不是一个坏主意,但由于缺乏对非Java应用程序的支持,尤其是对管道(旧的工作流)插件的支持,以及我们对Jenkins知识的缺乏(目前还没有),我们遇到了很多麻烦。 但是出现错误: java.lang.IllegalArgumentException:预期的命名参数,但在org.jenkinsci.plugins.workflow.cps

  • 问题内容: 我想在一个定义管道构建作业的框架中利用Jenkins 的现有Mailer插件。给定以下简单的失败脚本,我希望每个构建版本都会收到一封电子邮件。 构建的输出为: 如您所见,它确实记录了它在失败后立即执行管道的过程,但是没有生成电子邮件。 利用自由工作的其他自由式工作中的电子邮件,只是通过管道工作来调用。 这与Jenkins 2.2和mailer 1.17一起运行。 是否有其他机制可以用来

  • 我正在迁移jenkins工作流作业到新的基于模板的工作流作业。因为构建号被用作工作流生成的构建工件版本的一部分,所以我必须以大于旧工作流的数量开始新工作流的构建号。不幸的是,下一个构建号插件不适用于工作流管道。 有人知道这样做的好方法吗?

  • 问题内容: 我想在管道作业中使用EnvInject插件。因此,我可以设置复选框“为运行准备一个环境”,但是 没有动作“注入环境变量”,就像在自由式作业中一样。我在“属性内容”块中声明了变量:在此处输入图片说明 如何使用EnvInject在管道作业中注​​入环境变量? 问题答案: 如果在“属性内容”块中声明了以下变量: 然后,您可以将它们放入管道中,以便:

  • 我正在研究文件操作插件 - 文件复制在詹金斯管道中的操作(詹金斯版本 - v2.73.2,詹金斯管道 - 2.5),我需要将文件从一个位置复制到具有不同文件夹结构的另一个位置。 预期: C:\workspace\Hello - F:\测试\样品 - 下面是我正在使用的命令,它正在复制整个Hello目录,而不是它按预期的方式运行。 F:\测试\示例\工作区\您好 - 感谢您的参与。

  • 分析输入后,有两个选项可用: 如果x=1->插入 如果x=2->更新 测试 null