Development¶
Requirements¶
- Java 21
- Maven
- Python 3.11+ for docs
Build from source¶
JAVA_HOME=/opt/homebrew/opt/openjdk@21 mvn package -DskipTests
The plugin artifact is:
target/jeballto-jenkins-plugin.hpi
Test¶
JAVA_HOME=/opt/homebrew/opt/openjdk@21 mvn test
Docs workflow¶
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-docs.txt
python -m mkdocs serve
Build static HTML:
python -m mkdocs build
Important files¶
src/main/java/io/jenkins/plugins/jeballto/JeballtoCloud.java
src/main/java/io/jenkins/plugins/jeballto/JeballtoAgentTemplate.java
src/main/java/io/jenkins/plugins/jeballto/JeballtoLauncher.java
src/main/java/io/jenkins/plugins/jeballto/OrphanedVmCleanup.java
src/main/java/io/jenkins/plugins/jeballto/provisioning/VmProvisioner.java
src/main/resources/io/jenkins/plugins/jeballto/JeballtoCloud/config.jelly
src/main/resources/io/jenkins/plugins/jeballto/JeballtoAgentTemplate/config.jelly
Review label routing, semaphore lifecycle, provisioning adoption, orphan cleanup, and Jelly form changes carefully.