From 2a46202b9f698f13f322f3e19343ed7ad5a03599 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Tue, 23 Jul 2019 07:58:55 -0400 Subject: [PATCH] Build gerrit images for 2.16 and 3.0 as well Our goal is upgrading to 3.0. To do that we need to upgrade to 2.15, then to 2.16, then to 3.0. Build all of the images so that we can do that. 2.16 and 3.0 also use bazel, so just use one copy of the Dockerfile for all three and let zuul check out the repos to the right versions. Depends-On: https://review.opendev.org/673147 Depends-On: https://review.opendev.org/672320 Change-Id: I35bd278e0c70c871fa44d005c60a987d1d8e3cdc --- .zuul.yaml | 206 ++++++++++++++++++++--- docker/gerrit/{2.15 => bazel}/Dockerfile | 2 +- playbooks/zuul/gerrit/repos.yaml | 18 +- 3 files changed, 201 insertions(+), 25 deletions(-) rename docker/gerrit/{2.15 => bazel}/Dockerfile (98%) diff --git a/.zuul.yaml b/.zuul.yaml index d0c811ea73..d8fdb2d754 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -158,13 +158,43 @@ vars: *haproxy-statsd_vars files: *haproxy-statsd_files -# Gerrit jobs +# Gerrit 2.13 jobs - job: - name: system-config-build-image-gerrit + name: system-config-build-image-gerrit-2.13 + description: Build a gerrit 2.13 image. + parent: system-config-build-image + vars: &gerrit_vars_2_13 + docker_images: + # The 2.13 image doesn't build from source, but from existing war file + - context: docker/gerrit/2.13 + repository: opendevorg/gerrit + path: /home/zuul/src/opendev.org/opendev/system-config + tags: + - 2.13 + files: &gerrit_files_2_13 + - docker/gerrit/2.13/.* + +- job: + name: system-config-upload-image-gerrit-2.13 + description: Build and upload a gerrit 2.13 image. + parent: system-config-upload-image + vars: *gerrit_vars_2_13 + files: *gerrit_files_2_13 + +- job: + name: system-config-promote-image-gerrit-2.13 + description: Promote a previously published gerrit 2.13 image to latest. + parent: system-config-promote-image + vars: *gerrit_vars_2_13 + files: *gerrit_files_2_13 + +# Gerrit 2.15 jobs +- job: + name: system-config-build-image-gerrit-2.15 description: Build a gerrit image. parent: system-config-build-image pre-run: playbooks/zuul/gerrit/repos.yaml - required-projects: &gerrit_projects + required-projects: &gerrit_projects_2_15 - name: gerrit.googlesource.com/gerrit override-checkout: stable-2.15 - name: gerrit.googlesource.com/plugins/commit-message-length-validator @@ -185,39 +215,160 @@ override-checkout: stable-2.15 - name: gerrit.googlesource.com/plugins/singleusergroup override-checkout: stable-2.15 - vars: &gerrit_vars + vars: &gerrit_vars_2_15 docker_images: - - context: docker/gerrit/2.15 + - context: docker/gerrit/bazel repository: opendevorg/gerrit path: /home/zuul/src/gerrit.googlesource.com/gerrit tags: - 2.15 - # The 2.13 image doesn't build from source, but from existing war file - - context: docker/gerrit/2.13 - repository: opendevorg/gerrit - path: /home/zuul/src/opendev.org/opendev/system-config - tags: - - 2.13 - files: &gerrit_files - - docker/gerrit/.* + files: &gerrit_files_2_15 + - docker/gerrit/bazel/.* - playbooks/zuul/gerrit/.* - job: - name: system-config-upload-image-gerrit + name: system-config-upload-image-gerrit-2.15 description: Build and upload a gerrit image. parent: system-config-upload-image pre-run: playbooks/zuul/gerrit/repos.yaml - required-projects: *gerrit_projects - vars: *gerrit_vars - files: *gerrit_files + required-projects: *gerrit_projects_2_15 + vars: *gerrit_vars_2_15 + files: *gerrit_files_2_15 - job: - name: system-config-promote-image-gerrit + name: system-config-promote-image-gerrit-2.15 description: Promote a previously published gerrit image to latest. parent: system-config-promote-image - vars: *gerrit_vars - files: *gerrit_files + vars: *gerrit_vars_2_15 + files: *gerrit_files_2_15 +# Gerrit 2.16 jobs +- job: + name: system-config-build-image-gerrit-2.16 + description: Build a gerrit image. + parent: system-config-build-image + pre-run: playbooks/zuul/gerrit/repos.yaml + required-projects: &gerrit_projects_2_16 + - name: gerrit.googlesource.com/gerrit + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/codemirror-editor + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/commit-message-length-validator + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/download-commands + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/hooks + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/its-base + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/its-storyboard + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/javamelody + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/replication + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/reviewnotes + override-checkout: stable-2.16 + - name: gerrit.googlesource.com/plugins/singleusergroup + override-checkout: stable-2.16 + vars: &gerrit_vars_2_16 + docker_images: + - context: docker/gerrit/bazel + repository: opendevorg/gerrit + path: /home/zuul/src/gerrit.googlesource.com/gerrit + tags: + - 2.16 + gerrit_additional_plugins: + - codemirror-editor + files: &gerrit_files_2_16 + - docker/gerrit/bazel/.* + - playbooks/zuul/gerrit/.* + +- job: + name: system-config-upload-image-gerrit-2.16 + description: Build and upload a gerrit image. + parent: system-config-upload-image + pre-run: playbooks/zuul/gerrit/repos.yaml + required-projects: *gerrit_projects_2_16 + vars: *gerrit_vars_2_16 + files: *gerrit_files_2_16 + +- job: + name: system-config-promote-image-gerrit-2.16 + description: Promote a previously published gerrit image to latest. + parent: system-config-promote-image + vars: *gerrit_vars_2_16 + files: *gerrit_files_2_16 + +# Gerrit 3.0 jobs +- job: + name: system-config-build-image-gerrit-3.0 + description: Build a gerrit image. + parent: system-config-build-image + pre-run: playbooks/zuul/gerrit/repos.yaml + required-projects: &gerrit_projects_3_0 + - name: gerrit.googlesource.com/gerrit + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/codemirror-editor + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/commit-message-length-validator + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/delete-project + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/download-commands + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/gitiles + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/hooks + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/its-base + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/its-storyboard + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/javamelody + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/plugin-manager + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/replication + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/reviewnotes + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/singleusergroup + override-checkout: stable-3.0 + - name: gerrit.googlesource.com/plugins/webhooks + override-checkout: stable-3.0 + vars: &gerrit_vars_3_0 + docker_images: + - context: docker/gerrit/bazel + repository: opendevorg/gerrit + path: /home/zuul/src/gerrit.googlesource.com/gerrit + tags: + - 3.0 + gerrit_additional_plugins: + - codemirror-editor + - delete-project + - gitiles + - plugin-manager + - webhooks + files: &gerrit_files_3_0 + - docker/gerrit/bazel/.* + - playbooks/zuul/gerrit/.* + +- job: + name: system-config-upload-image-gerrit-3.0 + description: Build and upload a gerrit image. + parent: system-config-upload-image + pre-run: playbooks/zuul/gerrit/repos.yaml + required-projects: *gerrit_projects_3_0 + vars: *gerrit_vars_3_0 + files: *gerrit_files_3_0 + +- job: + name: system-config-promote-image-gerrit-3.0 + description: Promote a previously published gerrit image to latest. + parent: system-config-promote-image + vars: *gerrit_vars_3_0 + files: *gerrit_files_3_0 # python-builder jobs - job: name: system-config-build-image-python-builder @@ -737,7 +888,10 @@ - system-config-build-image-jinja-init - system-config-build-image-gitea-init - system-config-build-image-gitea - - system-config-build-image-gerrit + - system-config-build-image-gerrit-2.13 + - system-config-build-image-gerrit-2.15 + - system-config-build-image-gerrit-2.16 + - system-config-build-image-gerrit-3.0 - system-config-build-image-haproxy-statsd - system-config-build-image-python-base - system-config-build-image-python-builder @@ -765,7 +919,10 @@ - system-config-upload-image-jinja-init - system-config-upload-image-gitea-init - system-config-upload-image-gitea - - system-config-upload-image-gerrit + - system-config-upload-image-gerrit-2.13 + - system-config-upload-image-gerrit-2.15 + - system-config-upload-image-gerrit-2.16 + - system-config-upload-image-gerrit-3.0 - system-config-upload-image-haproxy-statsd - system-config-upload-image-python-base - system-config-upload-image-python-builder @@ -774,7 +931,10 @@ - system-config-promote-image-jinja-init - system-config-promote-image-gitea-init - system-config-promote-image-gitea - - system-config-promote-image-gerrit + - system-config-promote-image-gerrit-2.13 + - system-config-promote-image-gerrit-2.15 + - system-config-promote-image-gerrit-2.16 + - system-config-promote-image-gerrit-3.0 - system-config-promote-image-haproxy-statsd - system-config-promote-image-python-base - system-config-promote-image-python-builder diff --git a/docker/gerrit/2.15/Dockerfile b/docker/gerrit/bazel/Dockerfile similarity index 98% rename from docker/gerrit/2.15/Dockerfile rename to docker/gerrit/bazel/Dockerfile index 580772a27c..e059a9bd2a 100644 --- a/docker/gerrit/2.15/Dockerfile +++ b/docker/gerrit/bazel/Dockerfile @@ -38,7 +38,7 @@ COPY . /usr/src ARG BAZEL_OPTS RUN cd /usr/src \ && bazel build release \ - --local_ram_resources=4096 \ + --local_ram_resources=3072 \ --local_cpu_resources=1 \ --host_force_python=PY3 \ --incompatible_string_join_requires_strings=false \ diff --git a/playbooks/zuul/gerrit/repos.yaml b/playbooks/zuul/gerrit/repos.yaml index 78e8946e04..df376b0aa5 100644 --- a/playbooks/zuul/gerrit/repos.yaml +++ b/playbooks/zuul/gerrit/repos.yaml @@ -6,14 +6,30 @@ chdir: /home/zuul/src/gerrit.googlesource.com/plugins loop: - commit-message-length-validator - - download-commands - hooks - its-storyboard - its-base - javamelody - replication - reviewnotes + + # There is no stable branch for download-commands and no 3.0 branch of + # singleusergroup so we need to check out the actual ref defined in the + # parent repo. Luckily, since we don't set a remote and this submodule + # uses relative paths, it should just clone the right thing and do it + # locally. + - name: Checkout core plugin submodules + command: "git submodule update --init plugins/{{ item }}" + args: + chdir: /home/zuul/src/gerrit.googlesource.com/gerrit + loop: + - download-commands - singleusergroup + - name: Move additional plugin repos into gerrit tree + command: "mv -f {{ item }} ../gerrit/plugins" + args: + chdir: /home/zuul/src/gerrit.googlesource.com/plugins + loop: "{{ gerrit_additional_plugins | default([]) }}" - name: Configure plugin bazel file lineinfile: