Include bzlmod from plugin's external deps and its extra components

Allow importing the bzlmod of extra external components of a plugin,
defined in the extraPlugin, extraModule and extraGhRepo, including their
modules, rather than creating a symlink to it.

This change leverages the ability to have multi-level dependencies and
compose them using a module definition rather than a bazel script
fragment, as we had to do before the adoption of bzlmod.

For older builds, before the bzlmod adoption, the system doesn't change
and the dependent plugins, lib and repos cannot contribute their
external dependencies.

Change-Id: I5080f0682879b5c03f8cf2bfb87bfb8087ce7676
2 files changed
tree: 92276175da890ec42d5a54333df87daf23c6b5fb
  1. jenkins/
  2. jenkins-docker/
  3. jenkins-internal/
  4. vars/
  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 --require-hashes 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/