4.8 KiB
Generated 2026-05-21 at base-sha 5399a5ddc36b. Type: top-level. 8 sources.
Entry points (vars/)
Every file under vars/ is automatically exposed by Jenkins as a global step bearing the file's name (no .groovy suffix). Service Jenkinsfiles call them like top-level functions; renaming a file is a breaking change for every consumer.
| File | Call signature | What it does |
|---|---|---|
buildPipeline.groovy |
def call(Map param) |
Legacy primary entry. Pins to node('slave02') (line 16), runs checkout → buildObjHelper dispatch → optional automation tests → notify. |
eksCICD.groovy |
def call(Map repo) |
Authorized-user gate (lines 12-26 — explicit allowedUsers list), then routes GCP → pod template OR AWS → EKS node selector, then commonCICDFlow(). Used by most modern services. |
gkeCICD.groovy |
def Podcall(Map stepParams) |
Sparse legacy entry — Maven build + Docker push with hardcoded pod template. New services should not use this. |
createEKSconfigs.groovy |
def call(Map params) |
EKS Helm config generator. Validates BU/team and renders config files. Pod from libraryResource("org/meesho/${env.INFRA_ENV}-pod.yaml") (line 5). |
onlyPushtoJfrog.groovy |
declarative pipeline (no call()) |
One-off artifact push without the full pipeline. Choice parameter declares ['jdk8', 'jdk11', 'jdk17', 'jdk21'] (line 16) but the JAVA_HOME switch (lines 48-53) only handles jdk17 explicitly — jdk11 and jdk21 fall through to the jdk8 default. ⚠ flagged in BUGS report. |
gcpMigration.groovy |
def call(Map params) |
One-off migration helper that emits a Jenkinsfile + Helm chart for a GCP-main branch. |
buildDockerGroovyGke.groovy |
def run(Map config) |
Multi-module Docker build helper for GKE with artifact-version detection. |
cloudFunctionCICD.groovy |
def cloudFunctionCICDFlow() |
Skeleton only. Body is sh 'ls -al'; echo 'Hello World' (lines 19-30) — flagged in BUGS report as not-yet-implemented. |
log.groovy |
def info/warning/error(msg) |
ANSI-colour logging wrapper. See concepts/observability. |
stageName.groovy |
def call(String description) |
Labels stages with environment + step counter. Reads cicd_environment → INFRA_ENV → BUILD_ENV → ENVIRONMENT (default ftr). |
The user-authorization gate (eksCICD only)
eksCICD.groovy:12-26 holds an explicit allowlist of users ('turbo-turtle', 'ringmaster-bot', and a handful of named engineers). Builds triggered by anyone outside that list are failed with a hard error() and a banner directing them to Ringmaster. buildPipeline does not enforce this gate — services on the legacy entry point can be triggered directly.
Pod template wiring
env.INFRA_ENV selects the Jenkins agent template via libraryResource("org/meesho/${env.INFRA_ENV}-pod.yaml"). Used in eksCICD.groovy:57, createEKSconfigs.groovy:5, and onlyPushtoJfrog.groovy:4. The resolution table:
env.INFRA_ENV |
Resource | Use |
|---|---|---|
dev |
resources/org/meesho/dev-pod.yaml |
Dev / sandbox |
stg |
resources/org/meesho/stg-pod.yaml |
Staging |
prd |
resources/org/meesho/prd-pod.yaml |
Production |
All three are single-container pods (devops-tools from the asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/devops/build-tools:lunar-v1.0.1* image), with nodeSelector: {dedicated: jenkins} and the matching toleration.
Don't add inline podTemplate blocks in stage code — they bypass the central agent inventory.
See also: 03-build-dispatch, docs/architecture.md.