Never report security issues on GitHub, public Jira issues or other public channels (Gitter/Twitter/etc.), follow the instruction from Jenkins Security to report it on Jenkins Jira
In the Jenkins project we appreciate any kind of contributions: code, documentation, design, etc. Any contribution counts, and the size does not matter! Check out this page for more information and links!
Many plugins and components also define their own contributing guidelines and communication channels. There is also a big number of mailing lists and chats.
If you are a newcomer contributor and have any questions, please do not hesitate to ask in the Newcomers Gitter channel.
- For larger contributions create an issue for any required discussion
- Implement solution on a branch in your fork
- Make sure to include issue ID (if created) in commit message, and make the message speak for itself
- Once you're done create a pull request and ask at least one of the maintainers for review
- Remember to title your pull request properly as it is used for release notes
Prerequisites: Java and Maven.
-
Ensure Java 17 or 21 is available.
$ java -version openjdk version "21.0.7" 2025-04-15 LTS
-
Ensure Maven >= 3.9.9 is installed and included in the
PATHenvironment variable.$ mvn -version Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
See IDE configuration.
This repository comes preconfigured for debugging in Visual Studio Code. Beyond Java and Maven, you will need:
- The recommended extensions for Visual Studio Code
- Node.js and NPM installed and in
PATH(check recommended versions inpom.xml>properties) - Frontend dependencies installed with
npm install
Then, in the Debug view, you can select between:
- Debug Frontend to debug the frontend code in a browser
- Debug Java to debug the Java code
- Debug All to debug both at the same time
When launching one of these, Visual Studio Code will automatically start the required tasks, such as npm run build:dev and mvn hpi:run -Dskip.npm -P quick-build.
Debugging.mp4
Both frontend and Java tests can also be ran and debugged through the Test view.
mvn hpi:run...
INFO: Jenkins is fully up and running
To work on the frontend code, two processes are needed at the same time:
On one terminal, start a development server that will not process frontend assets:
mvn hpi:run -Dskip.npm -P quick-buildOn another terminal, start a vite build command that automatically rebuilds on code changes:
npm run build:devIt's recommended that you set up the above terminal commands in your IDE of choice.
To generate the hpi package and run the test you can use:
mvn packageFor a quicker build without the tests run:
mvn package -P quick-buildCode style will be enforced by GitHub pull request checks.
For frontend code we use prettier and eslint.
You can automatically fix issues with npm run format && npm run eslint:fix
For java code we use spotless.
You can automatically fix issues with mvn spotless:apply