Skip to content

Latest commit

 

History

History
24 lines (16 loc) · 1.96 KB

File metadata and controls

24 lines (16 loc) · 1.96 KB

Jenkins migration

The GitHub Actions workflows currently cover three independent jobs:

Pipeline Trigger Equivalent work
Jenkinsfile PRs targeting main (Multibranch Pipeline) apiCheck, then build
Jenkinsfile.publish Push to main or manual run CalVer version, Maven publish, GitHub release, optional downstream dispatch
Jenkinsfile.sonar Push to main build sonar with a full checkout

Create a Jenkins agent with label jdk25. It must provide JDK 25, Git, curl, and a POSIX shell. The Gradle wrapper downloads the remaining build dependencies. Do not use a Java 17-only agent: the build compiles for JVM 25.

If a build remains at Still waiting to schedule task with doesn't have label 'jdk25', open Manage Jenkins -> Nodes, select the Java 25-capable agent, choose Configure, add jdk25 under Labels, save, and bring the agent online. The label is deliberately shared by all KPaper pipelines so builds cannot accidentally run on an older JVM.

Configure these Jenkins credentials:

  • kpaper-nexus: Username/password for NEXUS_USER and REPO_TOKEN.
  • kpaper-github-token: Secret text with permission to create releases in ModLabsCC/KPaper.
  • kpaper-downstream-pat: Secret text with permission to dispatch the downstream workflow.
  • kpaper-sonar-token: Secret text for SonarQube.

Also configure a Jenkins SonarQube installation named ModLabs SonarQube. Create the jobs as Multibranch Pipelines so checkout scm follows the discovered branch/PR revision. For publishing, set the repository URL and credentials in the job SCM configuration; the optional TARGET_REPO parameter replaces the old GitHub secret and can be left blank to skip downstream dispatch.

The publish pipeline intentionally creates the release through the GitHub API rather than requiring the GitHub CLI on the agent. The old Actions workflow used GITHUB_TOKEN; Jenkins therefore needs an equivalent repository-scoped token.