在作业运行时从Python中获取有关Jenkins作业的信息

t0ybt7op  于 2023-05-16  发布在  Jenkins
关注(0)|答案(1)|浏览(197)

所以,我在Jenkins上有这个Python脚本。
我想写一个函数,当从Jenkins管道调用时,它会告诉我它属于哪个作业,最好是一个到作业本身的链接。

**基本上,脚本必须知道它正在Jenkins上运行,并告诉哪个作业/管道正在运行它。

如果我运行一个构建,它有这样的路径:https://jenkins.foo.com/job/PYTHON-TEST/job/env_test/226/,我希望脚本返回此链接或至少部分链接,如:

  1. jenkins.foo.com
    1.Python测试
    1.环境试验
    1.二百二十六
    我看到点2,3,4可以用
import socket

socket.gethostname() # python-test-env-test-226-pt1l3-a1op4-61ak5

我知道在Databricks上可以使用:

dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson()

事实上,我已经在那里实现了。现在,我正在Jenkins上寻找类似的功能。有什么建议吗?也许,有一些其他的方法,而不是socket.gethostname()

rm5edbpk

rm5edbpk1#

所有这些信息都可以作为环境变量提供给您。所以如果你想通过python提取它们,你应该可以很容易地做到这一点。以下是一些你可以使用的环境变量。

JOB_NAME - Name of the Job of this build.
BUILD_NUMBER - The current build number. For example "153"
JENKINS_URL - URL of Jenkins. For example http://server:port/jenkins/
BUILD_URL - Full URL of this build. For example http://server:port/jenkins/job/foo/15/
JOB_URL - Full URL of this job. For example http://server:port/jenkins/job/foo/

相关问题