python - 如何从 Jenkins 的特定构建中获取分支名称?

标签 python git python-2.7 jenkins

我们在办公室使用 Git、jenkins 和 python。

我们每天使用 jenkins 构建一个新的软件版本。

如何使用 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'

关于python - 如何从 Jenkins 的特定构建中获取分支名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31000805/

相关文章:

python - 只能连接 str 不能列表到 str

python - 如何将 Kivy 触摸坐标转换为小部件空间

git - 在 Github 上,将 PR merge 到不同的分支

python - 自定义信号未传播

python-2.7 - 准备 FMU : Interchanging model parameters for model inputs

python - 使用 py2exe 处理动态导入

python - 如何在 python 中使用 plotly 制作混合统计子图?

python-2.7 - 统一码编码错误 : 'ascii' codec can't encode characters in position 62-11168: ordinal not in range(128)

javascript - 删除按钮不起作用

git - 多个 ssh key