Jenkins管道sh显示名称/标签

Jenkins管道sh显示名称/标签,jenkins,jenkins-pipeline,continuous-delivery,jenkins-blueocean,Jenkins,Jenkins Pipeline,Continuous Delivery,Jenkins Blueocean,使用Jenkins 2管道插件,有一个有用的功能,可以快速概述管道阶段和步骤状态,包括日志输出 但是,如果您使用“Shell脚本”(sh)步骤,似乎没有办法用有用的名称来标记该脚本,因此显示屏仅显示一长串“Shell脚本”(如下图所示) 如何指定一个有用的名称,或者如何使用其他步骤来实现相同的效果 2019年2月更新: 根据,现在可以从v2.28开始,对于那些还不能升级的用户,还有一个解决方法。请查看详细信息和评论 以前的版本(悬停以查看): 据我所知,这目前是不可能的。在詹金斯家 追踪器,有

使用Jenkins 2管道插件,有一个有用的功能,可以快速概述管道阶段和步骤状态,包括日志输出

但是,如果您使用“Shell脚本”(sh)步骤,似乎没有办法用有用的名称来标记该脚本,因此显示屏仅显示一长串“Shell脚本”(如下图所示)

如何指定一个有用的名称,或者如何使用其他步骤来实现相同的效果


2019年2月更新

根据,现在可以从v2.28开始,对于那些还不能升级的用户,还有一个解决方法。请查看详细信息和评论


以前的版本(悬停以查看):

据我所知,这目前是不可能的。在詹金斯家 追踪器,有个问题 这与您的情况类似:
sh
步骤在管道中添加一个“Shell脚本”步骤。然而, 可以有多个这样的步骤,包括来自不同领域的步骤 插件(例如Docker),这使得很难区分步骤。 我们也许应该向sh添加一个可选参数来指定名称或名称 然后将出现在管道步骤中的别名。 e、 例如,以下是npm的步骤,显示为“外壳 脚本:管道视图中的“npm”。

sh cmd:“npm安装”,名称:“npm”
然而,它作为旧版本的复制品关闭,旧版本最近已修复,并且 似乎包含在中。

现在似乎可以嵌套阶段,它们将出现在 查看表,但我不认为这是你要找的


嗯,绝望的时刻需要采取绝望的措施。如果您可以使用Blue Ocean,那么您可以使用具有单个执行行的并行步骤

        parallel(
            "This is my step name" : {
                sh 'env'
            }
        )

我也尝试了同样的方法,但在不同的环境中,我的团队不希望在日志UI上有多个sh日志窗口,所以我尝试在一行中使用多个UNIX命令 例如
jenkinsPipeline.sh“echo\”PATH:$PATH\“java-version;echo PROJ DIR=$projectDirectory;env>env.txt;cat env.txt;ls&&cd$projectDirectory&&gradle--刷新依赖项清理汇编”
它在Jenkins工作中为Jenkins管道脚本工作。
但若我使用共享库扩展管道和相同的策略,那个么它不起作用,或者像往常一样为sh登录UI创建多个窗口。

试试这个,这是一个很好的解决方法

import org.jenkinsci.plugins.workflow.cps.CpsThread
import org.jenkinsci.plugins.workflow.actions.LabelAction


    def test() {
    def xyz = "Prints PWD"
    try {
        sh script: 'pwd'
    }
    finally {
        CpsThread.current().head.get().addAction(new LabelAction("Shell script ${xyz} "))
    }
}

这并不完美,但我通常认为添加一个echo步骤就足够了,它描述了下面的bat或sh步骤试图实现的目标。以前从未见过它的人应该能够很快发现它

echo "Testing with Ping"
bat "ping www.stackoverflow.com"
echo "Getting IPs"
bat "nslookup www.stackoverflow.com"

根据桑迪的出色回答,我创建了一个小脚本包装器,它将sh步骤封装在try/finally块中

基本用法:

wrapper.script script: 'echo the invisible script', returnStdout: true, stepName: "description #1"
将显示“说明#1”而不是一般文本

完整的源代码和安装说明在这里

可以轻松地作为库安装在jenkins服务器上。

的2.28+版已获得了现在的
标签
选项:

标签(可选)

要在管道步骤视图中显示的标签以及步骤(而不是步骤类型)的蓝色海洋详细信息。因此,该视图比技术视图更有意义,并且是特定于领域的

  • 类型:字符串
例如:


如果您还不能升级,另一个选择是使用

不适合我

应该是:

sh script: "echo foo", label: "my step"

嵌套阶段只会按找到它们的时间顺序显示它们,因此我想说的是,你不能正确地“嵌套阶段”,只要我们得到的是人类可读的描述,而不是UI中的“Shell脚本”,我不在乎它是如何完成的。我将尝试跟踪报告的变更日志,看看我们是否有任何运气。我们已经尝试了,但找不到嵌套阶段的正确语法:@goofballLogic确实,它们在刚才Pom12也提到的表中显示为列。因此,如果你在这个阶段有多个步骤,你不能指定一个名称,我说这可能是你正在寻找的,目前不可能实现你想要的。IMHO我刚才提到的问题应该仍然是开放的,并且提供了不同的修复…现在已经实现了,请参阅。WorkflowScript:40:使用了无效的“并行”步骤-在此上下文中不允许-并行步骤只能用作阶段步骤块中唯一的顶级步骤您并行使用吗?你能展示一下你的例子吗?是的,这解决了命名问题,但它并行执行所有东西,如果你需要后续步骤执行,它不适合。
sh "echo foo", label: "my step"
sh script: "echo foo", label: "my step"