From 5d336574e77fb349ace15356ef8ffb816d463544 Mon Sep 17 00:00:00 2001 From: Anil Belur Date: Thu, 1 Feb 2024 09:29:34 +1000 Subject: [PATCH] Feat!: Upgrade Jenkins-job-builder to 6x Jenkins Job Builder 6.0.0 is released and breaks backward compatibility with 5.1.0. The breaking changes with previous 5.1.0 release: - Jobs are now expanded the same way as job templates. - Macros without parameters are now expanded the same way as macros with parameters. - Tags !include-raw: and !include-raw-escape: should now be used the same way in jobs and macros without parameters as they are used in job templates and macros with parameters. Note: This breaks backward compatibility with older version of JJB therefore care must be taken when upgrading the ci-man repositories. Ref: https://storyboard.openstack.org/#!/story/2010963 https://storyboard.openstack.org/#!/story/2010588 Issue: RELENG-5118 Change-Id: Ib9acd0b9e7c264ac3531af858431e738397833b5 Signed-off-by: Anil Belur --- jjb/lf-ci-jobs.yaml | 2 +- jjb/lf-macros.yaml | 18 ++++++++-------- jjb/lf-maven-jobs.yaml | 2 +- .../notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml | 24 ++++++++++++++++++++++ tox.ini | 8 ++++---- 5 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 releasenotes/notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml diff --git a/jjb/lf-ci-jobs.yaml b/jjb/lf-ci-jobs.yaml index 91262892..cd95e701 100644 --- a/jjb/lf-ci-jobs.yaml +++ b/jjb/lf-ci-jobs.yaml @@ -101,7 +101,7 @@ disable-job: false github-url: "https://github.com" jjb-cache: "$HOME/.cache/jenkins_jobs" - jjb-version: 5.1.0 + jjb-version: 6.0.0 stream: master submodule-recursive: true submodule-timeout: 10 diff --git a/jjb/lf-macros.yaml b/jjb/lf-macros.yaml index 3ceda0d1..4032c5f4 100644 --- a/jjb/lf-macros.yaml +++ b/jjb/lf-macros.yaml @@ -22,7 +22,7 @@ - builder: name: lf-fetch-dependent-patches builders: - - shell: !include-raw: ../shell/gerrit-fetch-dependencies.sh + - shell: !include-raw-escape: ../shell/gerrit-fetch-dependencies.sh - inject: properties-file: $WORKSPACE/.dependency.properties @@ -42,7 +42,7 @@ - builder: name: lf-infra-capture-instance-metadata builders: - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/capture-instance-metadata.sh - builder: @@ -100,11 +100,11 @@ # Ensure python-tools are installed in case job template does not # call the lf-infra-pre-build macro. - ../shell/python-tools-install.sh - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/sudo-logs.sh - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/job-cost.sh - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/logs-deploy.sh - shell: !include-raw: - ../shell/logs-clear-credentials.sh @@ -114,7 +114,7 @@ - builder: name: lf-infra-package-listing builders: - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/package-listing.sh - builder: @@ -179,7 +179,7 @@ - builder: name: lf-infra-update-packer-images builders: - - shell: !include-raw: ../shell/update-cloud-images.sh + - shell: !include-raw-escape: ../shell/update-cloud-images.sh - builder: name: lf-infra-push-gerrit-patch @@ -197,7 +197,7 @@ - builder: name: lf-infra-sysstat builders: - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/sysstat.sh - builder: @@ -343,7 +343,7 @@ files: - file-id: lftoolsini target: "$HOME/.config/lftools/lftools.ini" - - shell: !include-raw: ../shell/release-job.sh + - shell: !include-raw-escape: ../shell/release-job.sh - builder: name: lf-sigul-sign-dir diff --git a/jjb/lf-maven-jobs.yaml b/jjb/lf-maven-jobs.yaml index f2693d4b..aba6b9b7 100644 --- a/jjb/lf-maven-jobs.yaml +++ b/jjb/lf-maven-jobs.yaml @@ -17,7 +17,7 @@ - builder: name: lf-maven-deploy builders: - - shell: !include-raw: + - shell: !include-raw-escape: - ../shell/common-variables.sh - ../shell/maven-deploy.sh diff --git a/releasenotes/notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml b/releasenotes/notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml new file mode 100644 index 00000000..347f1bca --- /dev/null +++ b/releasenotes/notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml @@ -0,0 +1,24 @@ +--- +prelude: > + Jenkins Job Builder 6.0.0 is released and breaks backward compatibility + with 5.1.0. + + The breaking changes with previous 5.1.0 release: + + - Jobs are now expanded the same way as job templates. + - Macros without parameters are now expanded the same way as macros with + parameters. + - Tags !include-raw: and !include-raw-escape: should now be used the same + way in jobs and macros without parameters as they are used in job + templates and macros with parameters. +issues: + - | + This breaks backward compatibility with older version of JJB + therefore care must be taken during upgrade on the ci-man repositories. +upgrade: + - | + Upgrade Jenkins-job-builder to 6.0.0 as the default version. + + Ref: + https://storyboard.openstack.org/#!/story/2010963 + https://storyboard.openstack.org/#!/story/2010588 diff --git a/tox.ini b/tox.ini index a3556450..91332c12 100644 --- a/tox.ini +++ b/tox.ini @@ -26,14 +26,14 @@ commands = [testenv:jjb] basepython = python3 deps = - jenkins-job-builder==5.1.0 + jenkins-job-builder==6.0.0 commands = jenkins-jobs -l DEBUG test --recursive -o {toxinidir}/archives/job-configs {toxinidir}/jjb:{toxinidir}/.jjb-test [testenv:jjb-compare-xml] basepython = python3 deps = - jenkins-job-builder==5.1.0 + jenkins-job-builder allowlist_externals = ./jjb-compare-xml.sh commands = @@ -42,7 +42,7 @@ commands = [testenv:jjb-latest] basepython = python3 deps = - jenkins-job-builder==5.1.0 + jenkins-job-builder commands = jenkins-jobs -l DEBUG test --recursive -o {toxinidir}/archives/job-configs {toxinidir}/jjb:{toxinidir}/.jjb-test @@ -103,7 +103,7 @@ commands = [testenv:jenkins-jobs] deps = - jenkins-job-builder{env:JJB_VERSION_OP:~=}{env:JJB_VERSION:5.1.0} + jenkins-job-builder{env:JJB_VERSION_OP:~=}{env:JJB_VERSION:6.0.0} commands = jenkins-jobs {posargs:--help} -- 2.16.6