【问题标题】:Build number using wget in a Jenkins pipeline在 Jenkins 管道中使用 wget 构建编号
【发布时间】:2018-04-11 05:01:56
【问题描述】:

我想要 Jenkins 管道中的变量中的最后一个内部版本号,无论是作业成功还是失败。为此,我正在使用:

def var = sh 'wget -qO- [jenkinsURL]/job/jobname/lastBuild/buildNumber'
echo "${var}"

Echo 返回一个空值。如何在 var 这样的变量中获取作业的最后构建号,以便可以在 Jenkins 管道中使用该变量?

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-cli


    【解决方案1】:

    这是获取构建 ID 的常用方法。我建议检查buildNumber 以确保它包含一个值。试试下面的。

    $ build_id=`wget -qO- jenkins_url/job/job_name/lastBuild/buildNumber`
    $ echo $build_id
    

    但是,如果您想要不同的方式,可以使用Jenkins API。我们以public Jenkins installation 为例:

    curl -s 'https://jenkins.qa.ubuntu.com/view/Precise/view/All%20Precise/api/json?depth=1' | jq -r '.jobs[] | [.lastCompletedBuild.number]
    

    上述命令应该获取所需的详细信息。

    我测试了以下命令,它为我获取了所需的结果。

    def output = sh returnStdout: true, script: 'wget -qO- [jenkinsURL]/job/jobname/lastBuild/buildNumber'
    echo "${output}"
    

    【讨论】:

    • 在我的情况下 curl 没有安装我只需要通过 wget 获取。我正在管道中编码,因此不允许使用 ` 并且即将出现语法错误。请建议使用 wget 在管道中执行此操作的方法。
    • 你试过我推荐的wget了吗?你是否也因此得到一个空值
    • $ build_id=wget -qO- jenkins_url/job/job_name/lastBuild/buildNumber $ echo $build_id 在管道中给出语法错误,因为不允许使用 `
    • 试试下面。 wget -qO- jenkins_url/job/job_name/lastBuild/buildNumber > buildID.out && cat buildID.out
    • $ build_id=wget -qO- jenkins_url/job/job_name/lastBuild/buildNumber $ echo $build_id 在管道中给出语法错误,因为 ` 不允许 def var = sh 'wget -qO- [jenkinsURL]/job/jobname/lastBuild/buildNumber' echo "${var}" 给了我 [test2] Running shell script + wget -qO- jenkins_url/job/job_name/lastBuild/buildNumber 156[Pipeline] } 虽然当我回显它时它给了我一个 156 的值,但它给出了 null 值。我的要求是捕获这个156 在一个变量中并在管道中使用它
    猜你喜欢
    • 2020-07-18
    • 2017-04-07
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2017-01-03
    • 1970-01-01
    相关资源
    最近更新 更多