Files
devops-lib-gcp/docs/wiki/pages/02-entry-points.md
T
2026-08-26 02:02:24 +05:30

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_environmentINFRA_ENVBUILD_ENVENVIRONMENT (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.