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)

Usage

Understand the moving parts

Architecture

Follow an environment through its states

Environment Lifecycle

Add or change a service

Development + Templates & Dependencies

Look up a constant, path, or helper

Reference

Understand who can do what

RBAC & Ownership

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.md and the code disagree, the code is authoritative and the delta is recorded in the appendix.