Jenkins-workflowジョブを新しいテンプレートベースのワークフロージョブに移行しています。ビルド番号は、ワークフローが生成するビルドアーティファクトのバージョンの一部として使用されるため、新しいワークフローのビルド番号を古いワークフローよりも大きい番号で開始する必要があります。残念ながら、「Next Build Number」プラグインはワークフローパイプラインでは機能しません。
誰かがこれを行う良い方法を知っていますか?
Jenkins Script Consoleで以下のスクリプトを実行してみてください。「workflow」をジョブ名に変更します
def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
または、次のようなスニペットをパイプライン/ワークフロージョブDSLスクリプトに追加することもできます(別名 Jenkinsfile ):
offset = 5
currentBuild.displayName = "#" + (currentBuild.number + offset)
残念ながら、フォルダを使用する場合、上記の方法はうまくいきませんでした。 Jenkinsスクリプトコンソールで次の方法を使用しました。
job = Jenkins.getInstance().getItemByFullName("BSKAzureConversion-Jobs/master", Job.class)
job.nextBuildNumber = 92
job.save()
いくつかのメモ:
@NonCPS
_を使用する必要がありますJenkins.instance
_のようなグローバルにはアクセスできないため、Groovy Sandboxを無効にしますJenkins.instance.getItem()
はフォルダーではうまく機能しません。 _Jenkins.instance.getItemByFullName
_に対して_env.JOB_NAME
_を使用しますjob.nextBuildNumber
_を設定すると、後続のビルドが有効になるので、次のビルドを開始しますコード:
_@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
}
_
「jenkins-cli」を使用して、これを行う別の方法も見つけました。スクリプトコンソールへのアクセスが利用できないロックダウンインストールで動作します(Cloudbees Enterprise Jenkins)
Java -jar jenkins-cli.jar -s https://instanceURL/ \
set-next-build-number workflow-name 33