This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch ci/javadocs-pipeline-maven-tools in repository https://gitbox.apache.org/repos/asf/struts-site.git
commit 0d009eabc369af8cf0fb4b70cf476e02435156ee Author: Lukasz Lenart <[email protected]> AuthorDate: Wed Jul 1 09:47:04 2026 +0200 ci: provision maven and jdk 17 via tools block in javadocs pipeline The first run failed with 'mvn: not found' (exit 127): MAVEN_3_LATEST_HOME is not set on the git-websites/websites2 agent, so prepending it to PATH added nothing. Replace the PATH hack with a declarative tools block (maven 'maven_3_latest', jdk 'jdk_17_latest'), matching the apache/struts build. Struts 7 also requires JDK 17, which the block now supplies. Co-Authored-By: Claude Opus 4.8 <[email protected]> --- Jenkinsfile.javadocs | 8 ++++++-- .../plans/2026-07-01-jenkins-javadocs-pipeline.md | 8 ++++++-- .../specs/2026-07-01-jenkins-javadocs-pipeline-design.md | 15 +++++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile.javadocs b/Jenkinsfile.javadocs index 4fc90a4f6..e79c6c263 100644 --- a/Jenkinsfile.javadocs +++ b/Jenkinsfile.javadocs @@ -14,10 +14,14 @@ pipeline { disableConcurrentBuilds() skipStagesAfterUnstable() } + tools { + // Provisions `mvn` and JDK 17 on PATH via Jenkins tool installers, matching + // the apache/struts build. Struts 7 requires JDK 17. + jdk 'jdk_17_latest' + maven 'maven_3_latest' + } environment { MAVEN_OPTS = '-Xmx2048m -Dhttps.protocols=TLSv1.2 -DfailOnError=false' - // Required: resolves `mvn` on the ASF agent (we use plain mvn, not the wrapper). - PATH = "${MAVEN_3_LATEST_HOME}:${env.PATH}" } stages { stage('Build Struts & Maven site') { diff --git a/docs/superpowers/plans/2026-07-01-jenkins-javadocs-pipeline.md b/docs/superpowers/plans/2026-07-01-jenkins-javadocs-pipeline.md index 3b6fb75c8..607608ba1 100644 --- a/docs/superpowers/plans/2026-07-01-jenkins-javadocs-pipeline.md +++ b/docs/superpowers/plans/2026-07-01-jenkins-javadocs-pipeline.md @@ -54,10 +54,14 @@ pipeline { disableConcurrentBuilds() skipStagesAfterUnstable() } + tools { + // Provisions `mvn` and JDK 17 on PATH via Jenkins tool installers, matching + // the apache/struts build. Struts 7 requires JDK 17. + jdk 'jdk_17_latest' + maven 'maven_3_latest' + } environment { MAVEN_OPTS = '-Xmx2048m -Dhttps.protocols=TLSv1.2 -DfailOnError=false' - // Required: resolves `mvn` on the ASF agent (we use plain mvn, not the wrapper). - PATH = "${MAVEN_3_LATEST_HOME}:${env.PATH}" } stages { stage('Build Struts & Maven site') { diff --git a/docs/superpowers/specs/2026-07-01-jenkins-javadocs-pipeline-design.md b/docs/superpowers/specs/2026-07-01-jenkins-javadocs-pipeline-design.md index 9f72588c7..d00d834d9 100644 --- a/docs/superpowers/specs/2026-07-01-jenkins-javadocs-pipeline-design.md +++ b/docs/superpowers/specs/2026-07-01-jenkins-javadocs-pipeline-design.md @@ -31,9 +31,12 @@ existing website-build pipeline already in this repo. ## Deliberate changes vs. the current shell script -1. **`./mvnw` → `mvn`.** Use the Maven installation on the ASF agent instead of the - Struts project's Maven wrapper. This makes the `MAVEN_3_LATEST_HOME` PATH entry - load-bearing (it is what resolves `mvn`), so it is kept. +1. **`./mvnw` → `mvn`.** Use a Jenkins-provisioned Maven instead of the Struts project's + Maven wrapper. Maven and JDK 17 are supplied via a declarative `tools` block + (`maven 'maven_3_latest'`, `jdk 'jdk_17_latest'`), matching the apache/struts build. + (An earlier draft prepended `MAVEN_3_LATEST_HOME` to `PATH`; that env var is not set on + the `git-websites`/`websites2` agent, so `mvn` was not found — the `tools` block is the + correct mechanism.) 2. **`git push origin main` → `git push asf main`.** Mirror the existing `Jenkinsfile`'s explicit `asf` remote pattern rather than relying on the ambient `origin`. @@ -68,9 +71,13 @@ options { skipStagesAfterUnstable() } +tools { + jdk 'jdk_17_latest' // Struts 7 requires JDK 17 + maven 'maven_3_latest' // puts `mvn` on PATH on whatever node runs +} + environment { MAVEN_OPTS = '-Xmx2048m -Dhttps.protocols=TLSv1.2 -DfailOnError=false' - PATH = "${MAVEN_3_LATEST_HOME}:${env.PATH}" // required: resolves `mvn` on the ASF agent } ```
