web-dev-qa-db-ja.com

Jenkinsグルービーパイプライン-ビルドされたジョブのビルド番号を取得する

私のチームがクラウドVMを起動してソフトウェアスタックを展開するために使用しているパイプラインがあります。このプロセスの一部は、選択したビルドからのアーティファクトをバンドルすることです。現在、リストされているジョブの最後の成功を取得していますが、パイプラインがバンドルを作成する前に別のプロセスでそのジョブが再度ビルドされるという問題が発生し、バンドルは誤った依存関係でビルドされたアーティファクトを取得します。

def DeployModule(jobName, jobBranch, serverHostName, database){
build job: jobName, parameters: [[$class: 'StringParameterValue', name: 'Branch', value: jobBranch], [$class: 'StringParameterValue', name: 'DatabaseAction', value: database], [$class: 'StringParameterValue', name: 'Profile', value: serverHostName]]
println "$jobName Succesfull"
}

トリガーされた実際のビルド番号を取得するように、単純なビルドジョブメソッドを変更する方法はありますか?パイプラインコンソールは、作成されたビルド番号を出力します。グルービーコードで取得する方法がわからないだけです。

[Pipeline] build (Building tms-auto-build)
Scheduling project: tms-auto-build
Starting building: tms-auto-build #298
11
Stephen Nichols

これは、実は一種の簡単なことではありませんでした。 build job: jobNameを変数に、その変数はRunWrapper

https://github.com/jenkinsci/pipeline-plugin/blob/d3f66c6f04d1d979957f02819b19291e2c35e276/support/src/main/Java/org/jenkinsci/plugins/workflow/support/steps/build/RunWrapper.Java

完全に機能する.getNumber()としてのRunWrapper

def testing = build job: "tms-auto-build"
println testing.getNumber()
17
Stephen Nichols