Use remote Bazel cache on https://gerrit-ci.gerritforge.com/cache

Use Bazel cache across different worker nodes: by using the same
global Bazel cache allow reusing artifacts from the previous builds
and avoid running tests if the dependent code hasn't changed.

Using remote Bazel cache also avoids re-building if nothing changed,
as the build artifacts would be fetched from the remote Bazel cache
thanks to cache hits.

In fact, the 'bazel build :release :api' would be a no-op if only
some files were changed that do not contribute to the final artifact
(say contrib directory).

How to test the Bazel cache locally:

$ bazelisk build \
  --remote_cache=https://gerrit-ci.gerritforge.com/cache \
  --noremote_upload_local_results \
  gerrit

Change-Id: I261d086bb5082969f422ff8a79ce6ec3fed7eb9a
7 files changed
tree: ad9d366913d064482784af32c31f08db43432577
  1. jenkins/
  2. jenkins-docker/
  3. worker/
  4. .gitignore
  5. Jenkinsfile
  6. README.md
  7. yamllint-config.yaml
README.md

Gerrit CI scripts

Providing jobs

This project uses Jenkins Jobs Builder [1] to generate jobs from yaml descriptor files.

To add new jobs reuse existing templates, defaults etc. as much as possible. E.g. adding a job to build an additional branch of a project may be as easy as adding the name of the branch to an existing project.

To ensure well readable yaml-files, use yamllint [2] to lint the yaml-files. Yamllint can be downloaded using Python Pip:

pip3 install yamllint

To run the linter, execute this command from the project's root directory:

yamllint -c yamllint-config.yaml jenkins/**/*.yaml

Yamllint will not fix detected issues itself.

[1] https://docs.openstack.org/infra/jenkins-job-builder/index.html [2] https://pypi.org/project/yamllint/