【问题标题】:python - how to get branch name from a specific build from jenkins?python - 如何从詹金斯的特定构建中获取分支名称?
【发布时间】:2015-06-23 10:51:46
【问题描述】:

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

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

如何使用来自 Jenkins 的 Python 获取构建所属的分支名称?

Jenkins 中是否有任何 API(函数调用)可以让我将内部版本号作为参数提供,并提供分支号?

临时解决方案

我们还为每个构建提供了一个 git 标签,格式如下:

<build>_<username>_<branch>

我目前使用下面的git命令来获取标签:

git ls-remote --tags <git-repo> | grep BUILD-NUMBER

获得标签后,我使用正则表达式从中提取分支名称。

提前致谢。

【问题讨论】:

    标签: python git python-2.7 jenkins


    【解决方案1】:

    检查 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'
    

    【讨论】:

    • 嗨,如果只是想得到“master”这个词,我应该使用正则表达式吗?
    • 您可以使用rsplit()。 'refs/remotes/origin/master'.rsplit('/', 1)[1]
    • 我以前从未使用过 pypy 库。如何使用它?我想我应该先下载它。下载后,我应该把它放在哪里,我应该如何安装它?能否请您发送一个如何安装 pypy 包以便使用的链接?
    • 使用pip 安装 Python 包非常方便。网上有很多关于安装 Python 包和搭建 Python 环境的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多