4

http://localhost/jenkins/job/job_name/25/api/jsonビルド 26 の詳細を含むオブジェクトを返す方法と同様にJSON、最初にジョブを開始するとき、つまりビルド番号が何であるかを知る前に同様のオブジェクトを取得する方法はありますか?

curlポスト リクエストからhtmlビルド番号を含むビルド URL リターンへの出力に気付きました。JSONただし、ビルド番号を含むオブジェクトを保持するために、これを解析する必要はありません。現在、私は使用しています:

curl -v --data "param1=value&param2=value" \
http://localhost/jenkins/job/job_name/buildWithParameters

これにより、ジョブが正常に開始され、大量の が出力されますhtmlJSONこのジョブを開始してビルド番号付きのオブジェクトを受け取る方法はありますか?

4

4 に答える 4

6

nextBuildNumber は、常に正しいビルド番号であるとは限りません。同じジョブの 2 つの異なるビルドをトリガーした場合、どちらが最初にトリガーされたかはわかりません。ここに競合状態があります。ビルド キューを確認しても、正しいビルド番号が得られない場合があります。

于 2013-03-19T08:42:42.730 に答える
2

クエリを実行すると、いつでもフィールドhttp://localhost/jenkins/job/job_name/api/jsonをフェッチして、次のビルド番号を取得できます。nextBuildNumber

ビルドをトリガーすると、ビルドが正確にこの数を取得するので安心できます。

于 2013-01-02T23:41:46.857 に答える
1

ビルドがトリガーされるとすぐに、次からその URL を取得できます。

http://localhost/jenkins/job/job_name/api/json?tree=lastBuild[url]

これにより、実行中のビルドがあればそれが返され、そうでなければ最後に完了したビルドが返されます。次に、その URL に「/api/json」を追加して、ビルドの JSON オブジェクトを取得できます。

于 2013-01-02T23:52:13.083 に答える
0

In my scenario I needed a JSONP data type to go through. What I did is get the raw object of my particular job from Jenkins so that then I can manipulate it as necessary.

Request:

$.ajax({
  url: "http://<jenkins server>/job/<job name>/api/json?jsonp=?",
  dataType: 'jsonp',
  success: success
});  

Success call:

var success = function(json) {

 console.log('Raw JSON object for this job:');
 console.log(json);    
}

Then, get the info you need, such as:

console.log(json.lastCompletedBuild.number);
console.log(json.lastBuild.url);
于 2014-11-07T14:25:01.883 に答える