Rename gerrit-base to gerrit-setup
Make gerrit-setup include only the gerrit project. This will
run the playbook which sets up the git repos, but we will add
a new branch-aware job that inherits from this to the gerrit
repo to include the appropriate repos as required-projects.
Then add a gerrit-build-base job which builds gerrit itself.
This holds the playbook for building gerrit and any other
configuration necessary, but it does not add the required-projects
(ie, the core plugins) because they are also branch specific.
It is temporarily parented on gerrit-setup, but will be reparented
to gerrit-base once that job exists.
The gerrit-build job itself will be defined in the gerrit repo
but inherit from gerrit-build-base. That job will have branch
variants for all supported gerrit branches, which the appropriate
list of required-projects for each.
A future change will add test jobs to this repo which will run
gerrit-base on changes to this repo to test changes to the main
part of the job.
Change-Id: Ib676f79593390d69935c1b9f5624b0c7fa1c6f90
diff --git a/playbooks/gerrit-base/pre.yaml b/playbooks/gerrit-setup/pre.yaml
similarity index 100%
rename from playbooks/gerrit-base/pre.yaml
rename to playbooks/gerrit-setup/pre.yaml
diff --git a/playbooks/gerrit/build.yaml b/playbooks/gerrit/build.yaml
new file mode 100644
index 0000000..514def1
--- /dev/null
+++ b/playbooks/gerrit/build.yaml
@@ -0,0 +1,5 @@
+- name: Build Gerrit
+ hosts: all
+ roles:
+ - role: bazelisk-build
+ bazelisk_targets: "plugins:core release api"
diff --git a/playbooks/test-gerrit-base.yaml b/playbooks/test-gerrit-base.yaml
deleted file mode 100644
index eaa4fcf..0000000
--- a/playbooks/test-gerrit-base.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-- hosts: all
- tasks:
- - name: List submodule git dir
- command: "ls src/gerrit.googlesource.com/gerrit/{{ item }}/.git"
- args:
- chdir: "{{ ansible_user_dir }}"
- loop:
- - modules/jgit
- - plugins/codemirror-editor
- - plugins/commit-message-length-validator
- - plugins/delete-project
- - plugins/download-commands
- - plugins/gitiles
- - plugins/hooks
- - plugins/plugin-manager
- - plugins/replication
- - plugins/reviewnotes
- - plugins/singleusergroup
- - plugins/webhooks
- - polymer-bridges
diff --git a/playbooks/test-gerrit-setup.yaml b/playbooks/test-gerrit-setup.yaml
new file mode 100644
index 0000000..01022e6
--- /dev/null
+++ b/playbooks/test-gerrit-setup.yaml
@@ -0,0 +1,8 @@
+- hosts: all
+ tasks:
+ - name: List submodule git dir
+ command: "ls src/gerrit.googlesource.com/gerrit/{{ item }}/.git"
+ args:
+ chdir: "{{ ansible_user_dir }}"
+ loop:
+ - modules/jgit
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 6d9c908..dde5e53 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -1,30 +1,47 @@
- job:
- name: gerrit-base
+ name: gerrit-setup
description: |
Base job for building Gerrit
- This job sets up all the repos which are required for a gerrit
- build.
- pre-run: playbooks/gerrit-base/pre.yaml
+ This job sets up any supplied repos which are required for any
+ kind of gerrit-related build (plugins or Gerrit itself).
+
+ However, it does not include all of the required repos; for
+ that, see :zuul:job:`gerrit-base` which inherits from this and
+ adds branch-appropriate required-projects.
+ pre-run: playbooks/gerrit-setup/pre.yaml
required-projects:
- gerrit
- - jgit
- - plugins/codemirror-editor
- - plugins/commit-message-length-validator
- - plugins/delete-project
- - plugins/download-commands
- - plugins/gitiles
- - plugins/hooks
- - plugins/plugin-manager
- - plugins/replication
- - plugins/reviewnotes
- - plugins/singleusergroup
- - plugins/webhooks
- - polymer-bridges
+
+- job:
+ name: gerrit-build-base
+ parent: gerrit-setup
+ description: |
+ Build Gerrit
+
+ This job sets up submodule repos in a Gerrit tree and runs
+ bazelisk. However, it does not include all of the required
+ repos; for that, see :zuul:job:`gerrit-build` which inherits
+ from this and adds required-projects.
+
+ Responds to these variables:
+
+ .. zuul:jobvar:: baselisk_targets
+
+ The bazelisk targets to build. Defaults to ":release".
+
+ .. zuul:jobvar:: baselisk_test_targets
+
+ The bazelisk targets to test.
+ run: playbooks/gerrit/build.yaml
+ timeout: 3600
+ vars:
+ bazelisk_targets: ":release"
+ zuul_work_dir: "{{ ansible_user_dir }}/src/gerrit.googlesource.com/gerrit"
- job:
name: gerrit-plugin-build
- parent: gerrit-base
+ parent: gerrit-setup
description: |
Builds a Gerrit plugin in-tree
@@ -49,3 +66,6 @@
gerrit_plugin: "{{ zuul.project.short_name }}"
bazelisk_targets: "plugins/{{ gerrit_plugin }}:{{ gerrit_plugin }}"
zuul_work_dir: "{{ ansible_user_dir }}/src/gerrit.googlesource.com/gerrit"
+ # Temporarily add jgit here until we reparent on gerrit-base
+ required-projects:
+ - jgit
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index aa8e103..ce9587a 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -3,6 +3,6 @@
jobs:
- test-ensure-bazelisk
- test-ensure-java
- - test-gerrit-base
+ - test-gerrit-setup
- test-install-build-essential
- test-gerrit-plugin-build
diff --git a/zuul.d/test-jobs.yaml b/zuul.d/test-jobs.yaml
index 2067e6f..fa0a196 100644
--- a/zuul.d/test-jobs.yaml
+++ b/zuul.d/test-jobs.yaml
@@ -22,15 +22,29 @@
- playbooks/test-install-build-essential.yaml
- job:
- name: test-gerrit-base
- parent: gerrit-base
- run: playbooks/test-gerrit-base.yaml
+ name: test-gerrit-setup
+ parent: gerrit-setup
+ run: playbooks/test-gerrit-setup.yaml
+ required-projects:
+ - jgit
+ - plugins/codemirror-editor
+ - plugins/commit-message-length-validator
+ - plugins/delete-project
+ - plugins/download-commands
+ - plugins/gitiles
+ - plugins/hooks
+ - plugins/plugin-manager
+ - plugins/replication
+ - plugins/reviewnotes
+ - plugins/singleusergroup
+ - plugins/webhooks
+ - polymer-bridges
files:
- roles/ensure-bazelisk/.*
- roles/ensure-java/.*
- roles/prepare-gerrit-repos/.*
- roles/install-build-essential/.*
- - playbooks/test-gerrit-base.yaml
+ - playbooks/test-gerrit-setup.yaml
- job:
name: test-gerrit-plugin-build