From aadce439714133273b1ab95a43e565a9646757df Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Mon, 20 Nov 2023 08:17:41 -0800 Subject: [PATCH] Add gerrit 3.9 image builds We need to add java-prettify to our submodule setup as this is a new gerrit submodule. While we're in there we also cleanup some python binary symlinks that were only necessary for Gerrit 3.5 and older. The Gerrit 3.9.0 release was a bad release because it accidentally updated lucene versions to far ahead of 3.8.x. This broke online reindexing post upgrade from 3.8.x to 3.9.0. To address this the Gerrit project pulled 3.9.0, reverted a bunch of stuff, made a 3.9.0-rc6, we tested this (as did others), and when everything was working as expected released 3.9.1 to replace 3.9.0. That is the reason we are starting our image builds with 3.9.1 and not 3.9.0. It should be noted that 3.9.0 should be entirely avoided as well. Depends-On: https://review.opendev.org/c/openstack/project-config/+/901479 Change-Id: Ice2201ce5a7b3f560923dce84af2603bdc709ab9 --- playbooks/zuul/gerrit/repos.yaml | 10 --- playbooks/zuul/gerrit/submodules.yaml | 1 + zuul.d/docker-images/gerrit.yaml | 106 ++++++++++++++++++++++++++ zuul.d/project.yaml | 10 +++ zuul.d/system-config-run.yaml | 9 +++ 5 files changed, 126 insertions(+), 10 deletions(-) diff --git a/playbooks/zuul/gerrit/repos.yaml b/playbooks/zuul/gerrit/repos.yaml index 6afc5301e1..79730ca569 100644 --- a/playbooks/zuul/gerrit/repos.yaml +++ b/playbooks/zuul/gerrit/repos.yaml @@ -15,16 +15,6 @@ - unzip state: present - # Until Gerrit 3.5 we need to work around scripts looking for bare - # python instead of python3. - # https://gerrit-review.googlesource.com/c/gerrit/+/298903 - - name: Install python symlink - become: true - ansible.builtin.file: - src: /usr/bin/python3 - dest: /usr/bin/python - state: link - - name: Move common plugin repos into gerrit tree command: "mv -f {{ item }} ../gerrit/plugins" args: diff --git a/playbooks/zuul/gerrit/submodules.yaml b/playbooks/zuul/gerrit/submodules.yaml index 155bf145e5..ed282d6c36 100644 --- a/playbooks/zuul/gerrit/submodules.yaml +++ b/playbooks/zuul/gerrit/submodules.yaml @@ -6,5 +6,6 @@ args: chdir: /home/zuul/src/gerrit.googlesource.com/gerrit loop: + - modules/java-prettify - modules/jgit - polymer-bridges diff --git a/zuul.d/docker-images/gerrit.yaml b/zuul.d/docker-images/gerrit.yaml index 5966a31caa..2669c81d1d 100644 --- a/zuul.d/docker-images/gerrit.yaml +++ b/zuul.d/docker-images/gerrit.yaml @@ -134,6 +134,99 @@ vars: *gerrit_vars_3_8 files: *gerrit_files_3_8 +# Gerrit 3.9 jobs +- job: + name: system-config-build-image-gerrit-3.9 + description: Build a gerrit image. + parent: system-config-build-image + pre-run: + - playbooks/zuul/gerrit/repos.yaml + - playbooks/zuul/gerrit/submodules.yaml + run: playbooks/zuul/gerrit/run.yaml + requires: gerrit-base-container-image + provides: gerrit-3.9-container-image + required-projects: &gerrit_projects_3_9 + - name: opendev/system-config + override-checkout: master + - name: gerrit.googlesource.com/gerrit + override-checkout: stable-3.9 + # Backend behavior plugins + - name: gerrit.googlesource.com/plugins/commit-message-length-validator + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/delete-project + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/hooks + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/its-base + # There is no 3.9 branch + override-checkout: master + - name: gerrit.googlesource.com/plugins/its-storyboard + # There is no 3.9 branch + override-checkout: master + - name: gerrit.googlesource.com/plugins/plugin-manager + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/replication + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/reviewnotes + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/singleusergroup + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/webhooks + override-checkout: v3.9.1 + # UI behavior plugins + - name: gerrit.googlesource.com/plugins/codemirror-editor + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/download-commands + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/gitiles + override-checkout: v3.9.1 + - name: gerrit.googlesource.com/plugins/zuul-results-summary + override-checkout: main + # Non plugin submodules + - name: gerrit.googlesource.com/java-prettify + override-checkout: master + - name: gerrit.googlesource.com/jgit + override-checkout: master + - name: gerrit.googlesource.com/polymer-bridges + override-checkout: v3.9.1 + vars: &gerrit_vars_3_9 + docker_images: + - context: docker/gerrit/bazel + repository: opendevorg/gerrit + target: gerrit + path: /home/zuul/src/gerrit.googlesource.com/gerrit + tags: + - 3.9 + files: &gerrit_files_3_9 + - docker/gerrit/base/ + - docker/gerrit/bazel/ + - playbooks/zuul/gerrit/ + - playbooks/test-review.yaml + - testinfra/test_gerrit.py + - jeepyb/ + - roles/bazelisk-build/ + +- job: + name: system-config-upload-image-gerrit-3.9 + description: Build and upload a gerrit image. + parent: system-config-upload-image + pre-run: + - playbooks/zuul/gerrit/repos.yaml + - playbooks/zuul/gerrit/submodules.yaml + run: playbooks/zuul/gerrit/run.yaml + requires: gerrit-base-container-image + provides: gerrit-3.9-container-image + required-projects: *gerrit_projects_3_9 + vars: *gerrit_vars_3_9 + files: *gerrit_files_3_9 + +- job: + name: system-config-promote-image-gerrit-3.9 + description: Promote a previously published gerrit image to latest. + parent: system-config-promote-image + vars: *gerrit_vars_3_9 + files: *gerrit_files_3_9 + # Gerrit master jobs - job: name: system-config-build-image-gerrit-master-base @@ -169,6 +262,8 @@ - gerrit.googlesource.com/plugins/gitiles - name: gerrit.googlesource.com/plugins/zuul-results-summary override-checkout: main + # Non plugin submodules + - gerrit.googlesource.com/java-prettify - gerrit.googlesource.com/jgit - gerrit.googlesource.com/polymer-bridges vars: &gerrit_vars_master @@ -232,6 +327,11 @@ - name: opendev-buildset-registry - name: system-config-build-image-gerrit-base soft: true + - system-config-build-image-gerrit-3.9: + dependencies: + - name: opendev-buildset-registry + - name: system-config-build-image-gerrit-base + soft: true - system-config-build-image-gerrit-master: voting: false dependencies: @@ -250,7 +350,13 @@ - name: opendev-buildset-registry - name: system-config-upload-image-gerrit-base soft: true + - system-config-upload-image-gerrit-3.9: + dependencies: + - name: opendev-buildset-registry + - name: system-config-upload-image-gerrit-base + soft: true deploy: jobs: - system-config-promote-image-gerrit-base - system-config-promote-image-gerrit-3.8 + - system-config-promote-image-gerrit-3.9 diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 59440638eb..0bdc806050 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -69,6 +69,11 @@ - name: opendev-buildset-registry - name: system-config-build-image-gerrit-3.8 soft: true + - system-config-run-review-3.9: + dependencies: + - name: opendev-buildset-registry + - name: system-config-build-image-gerrit-3.9 + soft: true #- system-config-upgrade-review: # dependencies: # - name: opendev-buildset-registry @@ -224,6 +229,11 @@ - name: opendev-buildset-registry - name: system-config-upload-image-gerrit-3.8 soft: true + - system-config-run-review-3.9: + dependencies: + - name: opendev-buildset-registry + - name: system-config-upload-image-gerrit-3.9 + soft: true - system-config-run-refstack: dependencies: - name: opendev-buildset-registry diff --git a/zuul.d/system-config-run.yaml b/zuul.d/system-config-run.yaml index f92f01e1b8..ce0a600d61 100644 --- a/zuul.d/system-config-run.yaml +++ b/zuul.d/system-config-run.yaml @@ -1084,6 +1084,15 @@ vars: zuul_test_gerrit_version: '3.8' +- job: + name: system-config-run-review-3.9 + parent: system-config-run-review-base + description: | + Run the playbook for gerrit 3.9 (in a container). + requires: gerrit-3.9-container-image + vars: + zuul_test_gerrit_version: '3.9' + #- job: # name: system-config-upgrade-review # parent: system-config-run-review-base