Bump Jenkins server to 2.375.2

Jenkins doesn't support Java 8 as of 2.361.x [1], so it's been removed
from the Dockerfile.

We have also introduced a change in the way we manage plugins to make
plugin upgrades simpler. We now have a `required_plugins.txt` file which
is the list of plugins that we depend on directly, and a separate
`plugins.txt` file which contains all our plugins, including the
required plugins' transitive dependencies.

Any plugin version changes should be done in `required_plugins.txt`, and
we should then rebuild Jenkins for its new plugin manager tool [2] to
work out which dependencies need fetching. This list can then be used to
build subsequent iterations of the image. There is a comment detailing
this process in the server's Makefile.

We may want to automate the plugin update process in a separate make
target in a subsequent change.

[1] https://www.jenkins.io/doc/upgrade-guide/2.361/
[2] https://github.com/jenkinsci/plugin-installation-manager-tool

Bug: Issue 16536
Change-Id: I257615905dba0e72a903b0e3e469bc51c7f94f37
9 files changed
tree: 7785cdde6ab709f318f29364b98ca89ed137e4e9
  1. jenkins/
  2. jenkins-docker/
  3. vars/
  4. worker/
  5. .gitignore
  6. Jenkinsfile
  7. README.md
  8. 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/