web-dev-qa-db-ja.com

Jenkinsで成功した最新のビルドのbuild_idを取得するにはどうすればよいですか?

通常、成功した最新のビルドのアーティファクトを取得するには、以下のURLでwgetを実行します。

http://jenkins.com/job/job_name/lastSuccessfulBuild/artifact/artifact1/jenkins.txt

方法はありますか、wgetlastSuccessfulBuildを実行して、以下のようなbuild_idを取得できますか?

build_id=`wget http://jenkins.p2pcredit.local/job/job_name/lastSuccessfulBuild`
12
Jason

はい、方法があり、それは非常に簡単です:

$ build_id=`wget -qO- jenkins_url/job/job_name/lastSuccessfulBuild/buildNumber`
$ echo $build_id
131 # that's my build number
17

Curlを使用して最後に成功したビルド番号を取得するには:

curl --user userName:password https:// url/job/jobName/api/xml?xpath = / */lastStableBuild/number

最善の解決策は、依存関係がゼロのgroovyを使用することです。

node {
    script{
        def lastSuccessfulBuildID = 0
        def build = currentBuild.previousBuild
        while (build != null) {
            if (build.result == "SUCCESS")
            {
                lastSuccessfulBuildID = build.id as Integer
                break
            }
            build = build.previousBuild
        }
        println lastSuccessfulBuildID
    }
}

最後に成功したビルドIDを取得するためにjenkins_urlやjob_nameなどを指定する必要はありません。そうすれば、不要な設定なしで、リポジトリ内のすべてのJenkinsfileで簡単に使用できます。

Jenkins v2.164.2でテスト済み

0
networm