system-config/zuul.d/docker-images/gerrit.yaml
Clark Boylan c95726ed1e
Build Gerrit on top of our python-base images
This is done for a number of reasons. First it will allow us to update
the python version used in the images as we can have a 3.10 builder and
base images (but not a 3.10 openjdk:11 image). Second it will allow us
to easily switch to openjdk 17 by simply updating the package we install
and some paths for the jdk location.

The goal here is to have more control over the images so that we can do
things like change python and java versions when we want to.

Depends-On: https://review.opendev.org/c/opendev/jeepyb/+/870873
Change-Id: I7ea2658caf71336d582c01be17a91759e9ac2043
2023-02-01 11:10:42 +11:00

362 lines
13 KiB
YAML

# gerrit-base jobs
- job:
name: system-config-build-image-gerrit-base
description: Build a gerrit-base image.
parent: system-config-build-image
required-projects: &gerrit_base_projects
- opendev/jeepyb
- opendev/system-config
requires:
- python-builder-3.9-bullseye-container-image
- python-base-3.9-bullseye-container-image
provides: gerrit-base-container-image
pre-run: &gerrit-base_prerun
- playbooks/zuul/gerrit/base.yaml
vars: &gerrit-base_vars
docker_images:
- context: docker/gerrit/base
repository: opendevorg/gerrit-base
path: /home/zuul/src/opendev.org/opendev/jeepyb
files: &gerrit-base_files
- docker/gerrit/base/
- roles/bazelisk-build/
- playbooks/zuul/gerrit/
- job:
name: system-config-upload-image-gerrit-base
description: Build and upload a gerrit-base image.
parent: system-config-upload-image
requires:
- python-builder-3.9-bullseye-container-image
- python-base-3.9-bullseye-container-image
provides: gerrit-base-container-image
pre-run: *gerrit-base_prerun
required-projects: *gerrit_base_projects
vars: *gerrit-base_vars
files: *gerrit-base_files
- job:
name: system-config-promote-image-gerrit-base
description: Promote a previously published gerrit-base image to latest.
parent: system-config-promote-image
required-projects: *gerrit_base_projects
vars: *gerrit-base_vars
files: *gerrit-base_files
# Gerrit 3.6 jobs
- job:
name: system-config-build-image-gerrit-3.6
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.6-container-image
required-projects: &gerrit_projects_3_6
- name: opendev/system-config
override-checkout: master
- name: gerrit.googlesource.com/gerrit
override-checkout: stable-3.6
# Backend behavior plugins
- name: gerrit.googlesource.com/plugins/commit-message-length-validator
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/delete-project
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/hooks
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/its-base
# There is no 3.6 branch
override-checkout: master
- name: gerrit.googlesource.com/plugins/its-storyboard
# There is no 3.6 branch
override-checkout: master
- name: gerrit.googlesource.com/plugins/plugin-manager
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/replication
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/reviewnotes
# Temporarily checkout master to include FloggerLogString
# build error fixes. These errors have started due to a
# recent Bazel update
override-checkout: master
- name: gerrit.googlesource.com/plugins/singleusergroup
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/webhooks
override-checkout: v3.6.3
# UI behavior plugins
- name: gerrit.googlesource.com/plugins/codemirror-editor
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/download-commands
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/gitiles
override-checkout: v3.6.3
- name: gerrit.googlesource.com/plugins/zuul-results-summary
override-checkout: main
# Non plugin submodules
- name: gerrit.googlesource.com/jgit
override-checkout: master
- name: gerrit.googlesource.com/polymer-bridges
override-checkout: v3.6.3
vars: &gerrit_vars_3_6
docker_images:
- context: docker/gerrit/bazel
repository: opendevorg/gerrit
target: gerrit
path: /home/zuul/src/gerrit.googlesource.com/gerrit
tags:
- 3.6
files: &gerrit_files_3_6
- 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.6
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.6-container-image
required-projects: *gerrit_projects_3_6
vars: *gerrit_vars_3_6
files: *gerrit_files_3_6
- job:
name: system-config-promote-image-gerrit-3.6
description: Promote a previously published gerrit image to latest.
parent: system-config-promote-image
vars: *gerrit_vars_3_6
files: *gerrit_files_3_6
# Gerrit 3.7 jobs
- job:
name: system-config-build-image-gerrit-3.7
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.7-container-image
required-projects: &gerrit_projects_3_7
- name: opendev/system-config
override-checkout: master
- name: gerrit.googlesource.com/gerrit
override-checkout: stable-3.7
# Backend behavior plugins
- name: gerrit.googlesource.com/plugins/commit-message-length-validator
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/delete-project
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/hooks
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/its-base
# There is no 3.7 branch
override-checkout: master
- name: gerrit.googlesource.com/plugins/its-storyboard
# There is no 3.7 branch
override-checkout: master
- name: gerrit.googlesource.com/plugins/plugin-manager
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/replication
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/reviewnotes
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/singleusergroup
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/webhooks
override-checkout: v3.7.0
# UI behavior plugins
- name: gerrit.googlesource.com/plugins/codemirror-editor
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/download-commands
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/gitiles
override-checkout: v3.7.0
- name: gerrit.googlesource.com/plugins/zuul-results-summary
override-checkout: main
# Non plugin submodules
- name: gerrit.googlesource.com/jgit
override-checkout: master
- name: gerrit.googlesource.com/polymer-bridges
override-checkout: v3.7.0
vars: &gerrit_vars_3_7
docker_images:
- context: docker/gerrit/bazel
repository: opendevorg/gerrit
target: gerrit
path: /home/zuul/src/gerrit.googlesource.com/gerrit
tags:
- 3.7
files: &gerrit_files_3_7
- 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.7
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.7-container-image
required-projects: *gerrit_projects_3_7
vars: *gerrit_vars_3_7
files: *gerrit_files_3_7
- job:
name: system-config-promote-image-gerrit-3.7
description: Promote a previously published gerrit image to latest.
parent: system-config-promote-image
vars: *gerrit_vars_3_7
files: *gerrit_files_3_7
# Gerrit master jobs
- job:
name: system-config-build-image-gerrit-master-base
description: |
Build a gerrit image.
This job has no files matchers so it can be used in other repos.
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-master-container-image
required-projects: &gerrit_projects_master
- opendev/system-config
- gerrit.googlesource.com/gerrit
# Backend behavior plugins
- gerrit.googlesource.com/plugins/commit-message-length-validator
- gerrit.googlesource.com/plugins/delete-project
- gerrit.googlesource.com/plugins/hooks
- gerrit.googlesource.com/plugins/its-base
- gerrit.googlesource.com/plugins/its-storyboard
- gerrit.googlesource.com/plugins/plugin-manager
- gerrit.googlesource.com/plugins/replication
- gerrit.googlesource.com/plugins/reviewnotes
- gerrit.googlesource.com/plugins/singleusergroup
- gerrit.googlesource.com/plugins/webhooks
# UI behavior plugins
- gerrit.googlesource.com/plugins/checks
- gerrit.googlesource.com/plugins/codemirror-editor
- gerrit.googlesource.com/plugins/download-commands
- gerrit.googlesource.com/plugins/gitiles
- name: gerrit.googlesource.com/plugins/zuul-results-summary
override-checkout: main
- gerrit.googlesource.com/jgit
- gerrit.googlesource.com/polymer-bridges
vars: &gerrit_vars_master
zuul_work_dir: src/opendev.org/opendev/system-config
docker_images:
- context: docker/gerrit/bazel
repository: opendevorg/gerrit
target: gerrit
path: /home/zuul/src/gerrit.googlesource.com/gerrit
tags:
- master
gerrit_additional_plugins:
- checks
- job:
name: system-config-build-image-gerrit-master
description: |
Build a gerrit image.
This job is used in system-config.
parent: system-config-build-image-gerrit-master-base
files: &gerrit_files_master
- docker/gerrit/base/
- docker/gerrit/bazel/
- playbooks/zuul/gerrit/
- jeepyb/
- roles/bazelisk-build/
- job:
name: system-config-upload-image-gerrit-master
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-master-container-image
required-projects: *gerrit_projects_master
vars: *gerrit_vars_master
files: *gerrit_files_master
- job:
name: system-config-promote-image-gerrit-master
description: Promote a previously published gerrit image to latest.
parent: system-config-promote-image
vars: *gerrit_vars_master
files: *gerrit_files_master
- project-template:
name: system-config-gerrit-images
check:
jobs:
- system-config-build-image-gerrit-base:
dependencies:
- name: opendev-buildset-registry
- name: system-config-build-image-python-builder-3.9-bullseye
soft: true
- system-config-build-image-gerrit-3.6:
dependencies:
- name: opendev-buildset-registry
- name: system-config-build-image-gerrit-base
soft: true
- system-config-build-image-gerrit-3.7:
dependencies:
- name: opendev-buildset-registry
- name: system-config-build-image-gerrit-base
soft: true
- system-config-build-image-gerrit-master:
voting: false
dependencies:
- name: opendev-buildset-registry
- name: system-config-build-image-gerrit-base
soft: true
gate:
jobs:
- system-config-upload-image-gerrit-base:
dependencies:
- name: opendev-buildset-registry
- name: system-config-upload-image-python-builder-3.9-bullseye
soft: true
- system-config-upload-image-gerrit-3.6:
dependencies:
- name: opendev-buildset-registry
- name: system-config-upload-image-gerrit-base
soft: true
- system-config-upload-image-gerrit-3.7:
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.6
- system-config-promote-image-gerrit-3.7