Thank you for your interest in AdoptOpenJDK/infrastructure!
We welcome and encourage all kinds of contributions to the project, not only code. This includes bug reports, user experience feedback, assistance in reproducing issues and more.
To provide secure, consistent, repeatable, and auditable infrastructure for the AdoptOpenJDK farm.
The infrastructure project contains:
- The Ansible Playbooks for bootstrapping the build and test hosts (including a way to test Ansible).
- The Vagrant and QEMU test scripts for running our full suite of playbook tests.
- The Dockerfiles are used for:
- Running a subset of tests as GitHub actions (on a PR).
- Providing the base images for running builds on Docker containers in our build farm.
- The overriding Documentation for the build farm.
- Configuration files for linters etc in the root folder.
You can propose contributions by sending pull requests (PRs) through GitHub. Following these guidelines will help us merge your pull requests smoothly:
-
Your pull request is an opportunity to explain both what changes you'd like pulled in, but also why you'd like them added. Providing clarity on why you want changes makes it easier to accept, and provides valuable context to review. If there is a link to an issue in the PR that contains these details that is sufficient.
-
Follow the commit guidelines found below.
-
We encourage you to open a pull request early, and mark it as "Work In Progress", by prefixing the PR title with "WIP". This allows feedback to start early, and helps create a better end product. Committers will wait until after you've removed the WIP prefix to merge your changes.
The first line describes the change made. It is written in the imperative mood, and should say what happens when the patch is applied. Keep it short and simple. The first line should be less than 70 characters, where reasonable, and should be written in sentence case preferably not ending in a period. Leave a blank line between the first line and the message body.
The body should be wrapped at 72 characters, where reasonable.
Include as much information in your commit as possible. You may want to include designs and rationale, examples and code, or issues and next steps. Prefer copying resources into the body of the commit over providing external links. Structure large commit messages with headers, references etc. Remember, however, that the commit message is always going to be rendered in plain text.
When a commit has related issues or commits, explain the relation in the message body. When appropriate, use the keywords described in the following help article to automatically close issues. Closing Issues Using Keywords For example:
Install OpenSSL in windows playbook
OpenSSL is required to compile java on windows, so the OpenSSL role will
ensure the 32bit and 64bit versions are both installed into C:\openjdk
Fixes: #1234
All changes should be made to a personal fork of AdoptOpenJDK/infrastructure for making changes.
- Fork this repository
- Create a branch off your fork
- Make the change
- Test it (see below)
- Submit a Pull Request
Only reviewers in the
infrastructure
team have permission to merge requests for this repo, so if you feel your PR
is not getting enough attention, let one the team know via the
#infrastructure
slack channel
We have some information on running virtual machines to test the playbooks in the ansible directory README and we also have the VagrantPlaybookCheck and QemuPlaybookCheck jobs which you can submit your pull request to in order to validate it on a clean machine.
We expect developers to test their Ansible changes in a test environment whether through vagrant or elsewhere in order to ensure there are as few problems as possible.
Wherever possible, prefix the commit message with the area which you are changing e.g.
- unixPB:
- winPB:
- aixPB:
- ansible:
- vagrant:
- pbTests:
- docs:
- plugins:
- inventory:
- github:
Project documentation in permanent form (e.g. Build Farm architecture) is stored in the docs folder.