使用Python在Jenkins控制台输出中打印超链接

3
我通过Jenkins作业触发一个Python脚本,并希望在Jenkins控制台输出中打印超链接。有没有Jenkins插件或Python模块可以实现这个功能。
从测试脚本中,我尝试了以下代码 - echo 'print "http://www.google.com>Google"',但在控制台输出中它只是以原始文本的形式显示,并不会作为超链接(它确实可以使http URL链接可点击)。
我知道这将在HTML文件中起作用。
3个回答

2
你可以尝试使用ANSI Color插件,它会自动将其转换为超链接。我已经在Java中尝试过了,可以正常工作,你也可以尝试在Python中使用 :)

感谢您的评论。在启用Jenkins中的ANSIColor插件后,我尝试了一个简单的语句“printf '<a href=http://www.google.com>Google</a>'”,但它打印出了整个原始字符串,而不是只打印带有超链接的Google。我从配置页面启用了插件,并将颜色映射设置为xterm的默认值。如果我漏掉了什么,请告诉我。 - nirvana
嗨,请尝试直接将http://www.google.com作为文本打印出来,不包含<a>标签,它应该会自动转换为超链接在您的控制台中显示。 - cL83

1

1

我花了一些时间从Groovy代码(Jenkinsfile)中找出这个问题的解决方法,但我知道步骤/插件可以做到。 在这种情况下,您需要使用ModelHyperlinkNotehttps://javadoc.jenkins-ci.org/hudson/console/ModelHyperlinkNote.html)及其静态方法;因此,如果要链接到已启动的作业,则应执行以下操作:

final Run buildRun = Jenkins.instance.getItemByFullName(buildJobName
  ).getBuildByNumber(runId) as Run
final String link = ModelHyperlinkNote.encodeTo(buildRun)

然后,您可以将该值简单地写入日志,并且控制台日志将解释它并添加具有所有相关操作的小部件。

除了特定类型的方法之外,还有通用的encodeTo(String url, String text)方法,允许链接到其他类型的实体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接