
We often need to update gerrit image build details that only live in the job specification. For example tag or branch versions of gerrit and related repos. When we do this if we don't also do a noop update to our Dockerfiles the promotion job doesn't run for these images because we can't do the implicit file match in the promotion (deploy) pipeline. Fix this by explicitly matching the job config file in our jobs so that when we update the gerrit jobs we also run the gerrit image promotion jobs. We also ensure the system-config-run-review and infra-prod-service-review jobs are triggered when the docker image jobs update. This ensures we actually test the resulting images and then perform potentially necessary deployment actions before they are pulled into use. Change-Id: Id0c51818cd1e01bd16a79ab0c0f9172e844376b8
259 lines
9.1 KiB
YAML
259 lines
9.1 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.11-bookworm-container-image
|
|
- python-base-3.11-bookworm-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/
|
|
- zuul.d/docker-images/gerrit.yaml
|
|
|
|
- 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.11-bookworm-container-image
|
|
- python-base-3.11-bookworm-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.8 jobs
|
|
- job:
|
|
name: system-config-build-image-gerrit-3.8
|
|
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.8-container-image
|
|
required-projects: &gerrit_projects_3_8
|
|
- name: opendev/system-config
|
|
override-checkout: master
|
|
- name: gerrit.googlesource.com/gerrit
|
|
override-checkout: stable-3.8
|
|
# Backend behavior plugins
|
|
- name: gerrit.googlesource.com/plugins/commit-message-length-validator
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/delete-project
|
|
override-checkout: stable-3.8
|
|
- name: gerrit.googlesource.com/plugins/hooks
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/its-base
|
|
# There is no 3.8 branch
|
|
override-checkout: master
|
|
- name: gerrit.googlesource.com/plugins/its-storyboard
|
|
# There is no 3.8 branch
|
|
override-checkout: master
|
|
- name: gerrit.googlesource.com/plugins/plugin-manager
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/replication
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/reviewnotes
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/singleusergroup
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/webhooks
|
|
override-checkout: v3.8.3
|
|
# UI behavior plugins
|
|
- name: gerrit.googlesource.com/plugins/codemirror-editor
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/download-commands
|
|
override-checkout: v3.8.3
|
|
- name: gerrit.googlesource.com/plugins/gitiles
|
|
override-checkout: v3.8.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.8.3
|
|
vars: &gerrit_vars_3_8
|
|
docker_images:
|
|
- context: docker/gerrit/bazel
|
|
repository: opendevorg/gerrit
|
|
target: gerrit
|
|
path: /home/zuul/src/gerrit.googlesource.com/gerrit
|
|
tags:
|
|
- 3.8
|
|
files: &gerrit_files_3_8
|
|
- docker/gerrit/base/
|
|
- docker/gerrit/bazel/
|
|
- playbooks/zuul/gerrit/
|
|
- playbooks/test-review.yaml
|
|
- testinfra/test_gerrit.py
|
|
- jeepyb/
|
|
- roles/bazelisk-build/
|
|
- zuul.d/docker-images/gerrit.yaml
|
|
|
|
- job:
|
|
name: system-config-upload-image-gerrit-3.8
|
|
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.8-container-image
|
|
required-projects: *gerrit_projects_3_8
|
|
vars: *gerrit_vars_3_8
|
|
files: *gerrit_files_3_8
|
|
|
|
- job:
|
|
name: system-config-promote-image-gerrit-3.8
|
|
description: Promote a previously published gerrit image to latest.
|
|
parent: system-config-promote-image
|
|
vars: *gerrit_vars_3_8
|
|
files: *gerrit_files_3_8
|
|
|
|
# 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.11-bookworm
|
|
soft: true
|
|
- system-config-build-image-gerrit-3.8:
|
|
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.11-bookworm
|
|
soft: true
|
|
- system-config-upload-image-gerrit-3.8:
|
|
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
|