Feat!: Upgrade Jenkins-job-builder to 6x 05/72605/2 v0.90.0
authorAnil Belur <abelur@linuxfoundation.org>
Wed, 31 Jan 2024 23:29:34 +0000 (09:29 +1000)
committerAnil Belur <abelur@linuxfoundation.org>
Thu, 1 Feb 2024 00:05:06 +0000 (10:05 +1000)
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 <abelur@linuxfoundation.org>
jjb/lf-ci-jobs.yaml
jjb/lf-macros.yaml
jjb/lf-maven-jobs.yaml
releasenotes/notes/upgrade-jjb-6x-00f29f4ed84cedce.yaml [new file with mode: 0644]
tox.ini

index 9126289..cd95e70 100644 (file)
     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
index 3ceda0d..4032c5f 100644 (file)
@@ -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:
           # 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
 - builder:
     name: lf-infra-package-listing
     builders:
-      - shell: !include-raw:
+      - shell: !include-raw-escape:
           - ../shell/package-listing.sh
 
 - builder:
 - 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
 - builder:
     name: lf-infra-sysstat
     builders:
-      - shell: !include-raw:
+      - shell: !include-raw-escape:
           - ../shell/sysstat.sh
 
 - builder:
           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
index f2693d4..aba6b9b 100644 (file)
@@ -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 (file)
index 0000000..347f1bc
--- /dev/null
@@ -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 a355645..91332c1 100644 (file)
--- 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}