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: