This page provides information about contributing code to the Jenkins core codebase.
There's a lot more to the Jenkins project than just code. For information on contributing to the Jenkins project overall, check out Participate.
java11-devtools-compatibility
label in our issue tracker.war
module.
npm install -g yarn
to install it.If you want to contribute to Jenkins or just learn about the project,
you can start by fixing some easier issues.
In the Jenkins issue tracker we mark such issues as newbie-friendly
.
You can find them
using this query for newbie friendly issues.
The build flow for Jenkins core is built around Maven. There is a description of the building and debugging process.
If you want simply to have the jenkins.war
file as fast as possible without tests, run:
mvn -am -pl war,bom -DskipTests -Dspotbugs.skip clean install
The WAR file will be created in war/target/jenkins.war
.
After that you can start Jenkins using Java CLI (guide).
If you want to debug this WAR file without using Maven plugins,
You can just start the executable with Remote Debug Flags
and then attach IDE Debugger to it.
To launch a development instance, after the above command run:
mvn -pl war jetty:run
(Beware that maven-plugin
builds will not work in this mode due to class loading conflicts.)
To work on the war
module frontend assets two processes are needed at the same time:
On one terminal, start a development server that will not process frontend assets:
mvn -pl war jetty:run -Dskip.yarn
On another terminal, move to the war folder and start a webpack dev server:
cd war; yarn start
Jenkins core includes unit and functional tests as a part of the repository.
Functional tests (test
module) take a while even on server-grade machines.
Most of the tests will be launched by the continuous integration instance,
so there is no strict need to run full test suites before proposing a pull request.
There are 3 profiles for tests:
light-test
- only unit tests, no functional testssmoke-test
- run unit tests + a number of functional testsall-tests
- Runs all tests, with re-run (default)In addition to the included tests, you can also find extra integration and UI tests in the Acceptance Test Harness (ATH) repository. If you propose complex UI changes, you should create new ATH tests for them.
In case there's only need to run the JS tests:
cd war; yarn test
The Jenkins project source code repositories are hosted at GitHub. All proposed changes are submitted and code reviewed using the GitHub Pull Request process.
To submit a pull request:
jenkinsci
as base fork and master
as base
, then click Create Pull Request
@jenkinsci/core-pr-reviewers
in the comments.Once your Pull Request is ready to be merged, the repository maintainers will integrate it, prepare changelogs and ensure it gets released in one of incoming Weekly releases. There is no additional action required from pull request authors at this point.
Jenkins core is licensed under MIT license, with a few exceptions in bundled classes. We consider all contributions as MIT unless it's explicitly stated otherwise. MIT-incompatible code contributions will be rejected. Contributions under MIT-compatible licenses may be also rejected if they are not ultimately necessary.
We Do NOT require pull request submitters to sign the contributor agreement as long as the code is licensed under MIT and merged by one of the contributors with the signed agreement.
We still encourage people to sign the contributor agreement if they intend to submit more than a few pull requests. Signing is also a mandatory prerequisite for getting merge/push permissions to core repositories and for joining teams like Jenkins Security Team.
The Jenkins project has a Continuous Integration server... powered by Jenkins, of course. It is located at ci.jenkins.io.
The Jenkins project uses Jenkins Pipeline to run builds. The code for the core build flow is stored in the Jenkinsfile in the repository root. If you want to update that build flow (e.g. "add more checks"), just submit a pull request.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。