QA Shared Library
Jenkins Global Shared Library (qa-shared) that drives Docker Compose-based QA environments. Six Jenkins jobs cover the full lifecycle: Create-Environment, Deploy-Environment, Update-Environment, Manage-Environment (start / stop / restart / delete / manage-owners), List-Environments, and Cleanup-Environments.
What You Get
-
Reusable Groovy pipeline steps under
vars/(see vars index). -
A consolidated service bundle per database flavour in
resources/services/compose-{mysql,oracle}.yml. -
A dependency graph (
resources/schemas/dependencies.yaml) that drives UI auto-selection and validation. -
Shared Active Choices UI scripts built at pipeline-load time via
qaUiScripts.groovy. -
A small, opinionated logging DSL (
utils.logInit / stage / step / ok / warn / err / detail / group). -
A centralised configuration class (
QAConfig) for paths, limits, RBAC, and validation.
Who Should Read This
-
Jenkins admins wiring the QA-Environments folder and global env vars.
-
QA engineers provisioning, updating, or tearing down envs.
-
Platform developers adding services, dependency rules, or pipeline logic.
Where to Start
| Goal | Start here |
|---|---|
Use the Jenkins jobs (create / deploy / update / manage) |
|
Understand the moving parts |
|
Follow an environment through its states |
|
Add or change a service |
|
Look up a constant, path, or helper |
|
Understand who can do what |
Version
-
Library version:
2.6.0 -
Branch:
main -
Jenkins runtime: 2.528.2 / Groovy 2.4.21 / Java 21 (per repo memory)
For change history, consult git log — this site does not duplicate release notes.
Conventions Used in These Docs
-
Groovy and shell snippets come straight from the repo where possible; they are not invented.
-
File paths are absolute when referring to the Jenkins filesystem and relative when referring to the repo.
-
Anything marked "legacy" is still on disk but is no longer the recommended path.
-
Where
CLAUDE.mdand the code disagree, the code is authoritative and the delta is recorded in the appendix.