Files
devops-lib-gcp/ai-blitz/task-03-onlyPushtoJfrog-jdk-versions.md
T
2026-08-26 02:02:24 +05:30

1.7 KiB

Task 03: Complete JDK version handling in onlyPushtoJfrog.groovy

  • Type: Small feature
  • Source: BUGS_AND_IMPROVEMENTS_REPORT.md §1.5

Goal

When a user picks JDK 11 or JDK 21 in the onlyPushtoJfrog choice parameter, the job runs under that JDK — not the JDK 8 fall-through default.

Acceptance Criteria

  • vars/onlyPushtoJfrog.groovy:16 choice parameter remains ['jdk8', 'jdk11', 'jdk17', 'jdk21'] (no values removed)
  • The if/else at vars/onlyPushtoJfrog.groovy:48-53 handles all four JDK selections, each setting the correct JAVA_HOME path that exists in the build-tools pod image
  • An unknown JDK selection (shouldn't happen via the choice param, but defensive) sets JAVA_HOME to a fail-fast value and logs log.error("Unknown jdk_version: ${jdk_version}") instead of silently defaulting to JDK 8
  • Verify the JDK paths against the actual devops-tools:lunar-vX.Y.Z image used by prd-pod.yaml / stg-pod.yaml. If jdk11 or jdk21 aren't in the image, raise a tribal-knowledge §12 follow-up (bump the build-tools image tag) before this task can complete
  • Smoke-test all 4 JDK selections via a sandbox Jenkins job — confirm java -version reports the expected JDK in each run
  • No behavioural change for jdk8 / jdk17 selections — those branches stay identical

Notes / known gotchas

  • The fall-through bug is silent: builds "succeed" with the wrong JDK, which can mask bytecode-version incompatibilities or break records of which JDK actually built the artifact. The fail-fast on unknown values is intentional.
  • tribal-knowledge.md §12 calls out that toolchain binaries belong in the pod image, not curled at build time — keep this task aligned with that convention.