jenkins-workflowジョブを新しいテンプレートベースのワークフロージョブに移行しています。ビルド番号はビルド成果物のバージョンの一部として使用されるため、古いワークフローよりも大きな数の新しいワークフローを構築する必要があります。残念ながら、 '次のビルド番号'プラグインはワークフローパイプラインでは機能しません。Jenkinsワークフロー(パイプライン)ビルドのビルド番号を設定する
誰でも良い方法を知っていますか?
jenkins-workflowジョブを新しいテンプレートベースのワークフロージョブに移行しています。ビルド番号はビルド成果物のバージョンの一部として使用されるため、古いワークフローよりも大きな数の新しいワークフローを構築する必要があります。残念ながら、 '次のビルド番号'プラグインはワークフローパイプラインでは機能しません。Jenkinsワークフロー(パイプライン)ビルドのビルド番号を設定する
誰でも良い方法を知っていますか?
ジェンキンススクリプトコンソールでスクリプトの下に実行してみてください...変更あなたのジョブ名
def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
に「ワークフロー」私はまた、「ジェンキンス-CLI」を使用してこれを行うための別の方法を発見しました。これは、スクリプトコンソールへのアクセスが利用できないロックダウンのインストールで動作します(CloudBeesのエンタープライズ・ジェンキンス)
java -jar jenkins-cli.jar -s https://instanceURL/ \
set-next-build-number workflow-name 33
それとも、あなたのパイプラインには、このようなスニペットを追加することができます/ワークフロージョブDSLスクリプト(別名Jenkinsfile):
offset = 5
currentBuild.displayName = "#" + (currentBuild.number + offset)
これは私が必要としていたものです! –
残念ながら、上記の方法は、フォルダを使用すると私にとってはうまくいきませんでした。私はジェンキンススクリプトコンソールで次のように頼っ:
job = Jenkins.getInstance().getItemByFullName("BSKAzureConversion-Jobs/master", Job.class)
job.nextBuildNumber = 92
job.save()
3行目に 'job.saveNextBuildNumber()'を使用している場合、これは私のマルチブランチパイプラインで有効でした。 –
マルチブランチパイプラインからジョブ名を検索するには、次のコマンドを実行します。 'def jobs = Jenkins.getInstance()。getAllItems(); println次いで(ジョブ) ' そして、@DavidVは上記のように: 'DEFジョブ= Jenkins.instance.getItemByFullNameを( "YourTeam/your_project /%2Fbranchnameが機能")。 job.nextBuildNumber = 301; job.saveNextBuildNumber(); ' – kivagant
いくつかの注意事項:
Jenkins.instance.getItem()
フォルダとうまく動作しませんJenkins.instance
のようなグローバルにアクセスできないよう、@NonCPS
job.nextBuildNumber
を設定env.JOB_NAME
Jenkins.instance.getItemByFullName
を使用しますコード:
@NonCPS
def updateBuildNumber(build_number) {
def job = Jenkins.instance.getItemByFullName(env.JOB_NAME, Job.class)
job.nextBuildNumber = build_number
job.saveNextBuildNumber()
build env.JOB_NAME
return true
}
このコードスニペット 'nextBuildNumber'ファイルに新しいビルド番号を書き込みません。このため、Jenkinsを(正常に)再起動してビルドをトリガーすると、 'nextBuildNumber'ファイルに存在するビルド番号(上記のスニペットで指定されていないもの)を使用して終了します。 'job.save()'の代わりに 'job.saveNextBuildNumber()'を使うと、この問題に対処できます。 – Amit