python - 如何从 jenkins 的特定构建中获取分支名称?
python - how to get branch name from a specific build from jenkins?
我们在办公室使用 Git、jenkins 和 python。
我们每天使用 jenkins 构建一个新的 SW 版本。
如何使用 Jenkins 的 Python 获取构建所属的分支名称?
Jenkins 中是否有任何 API(函数调用)我可以将内部版本号作为参数给出,它会给我分支号?
临时解决方案
我们还为每个构建设置了一个 git 标签,格式如下:
<build>_<username>_<branch>
我目前使用以下 git 命令获取标签:
git ls-remote --tags <git-repo> | grep BUILD-NUMBER
获得标签后,我使用正则表达式从中提取分支名称。
提前致谢。
检查 jenkinsapi https://pypi.python.org/pypi/jenkinsapi
有了它你可以做:
>>> from jenkinsapi.jenkins import Jenkins
>>> job_name = 'example_job'
>>> build_number = 123
>>> server = Jenkins('http://localhost:8080', username='user', password='passwd')
>>> build = server.get_job(job_name).get_build(build_number)
>>> rev = build.get_revision_branch()[0].get('name')
>>> print rev
refs/remotes/origin/master
>>> rev.rsplit('/', 1)[1]
'master'
我们在办公室使用 Git、jenkins 和 python。
我们每天使用 jenkins 构建一个新的 SW 版本。
如何使用 Jenkins 的 Python 获取构建所属的分支名称?
Jenkins 中是否有任何 API(函数调用)我可以将内部版本号作为参数给出,它会给我分支号?
临时解决方案
我们还为每个构建设置了一个 git 标签,格式如下:
<build>_<username>_<branch>
我目前使用以下 git 命令获取标签:
git ls-remote --tags <git-repo> | grep BUILD-NUMBER
获得标签后,我使用正则表达式从中提取分支名称。
提前致谢。
检查 jenkinsapi https://pypi.python.org/pypi/jenkinsapi
有了它你可以做:
>>> from jenkinsapi.jenkins import Jenkins
>>> job_name = 'example_job'
>>> build_number = 123
>>> server = Jenkins('http://localhost:8080', username='user', password='passwd')
>>> build = server.get_job(job_name).get_build(build_number)
>>> rev = build.get_revision_branch()[0].get('name')
>>> print rev
refs/remotes/origin/master
>>> rev.rsplit('/', 1)[1]
'master'