Goal: provides additional quality checks on top of the Hadoop Yetus checks, including all docker based acceptance test suite.
Goal: max it easier to contribute for newbies and external contributors (but use the existing apache)
Non-goal: avoid/remove Yetus checks
Note: everything here is just experimental which can help to decide which method can be the best for the future. This wiki page summarizes the current state/experiences to be base of a discussion.
There are two main methods to check github PR-s in Jenkins:
This is more easy to use and more simple.
As an example for these kind of job, check this one: https://builds.apache.org/job/logging-log4net/ You can see that there are two tabs. The first includes all the branches and the second the active pull requests.
To work with it you need to commit a Jenkinsfile (we have one since HDDS-965) and the Jenkins can create jobs magically for PRs and/or branches based on patterns.
Every PR will have a separated job and the incremental builds are easily followed.
This is a more advanced plugin but not for the multi-branch pipline just for the simple pipeline. It is just one job which can build all PRs (and branches), but there is no separated job instances for the separated PRs.
It's more flexible: we can define github labels to exclude/include and we can define the users.
(see this thread: https://mail-archives.apache.org/mod_mbox/www-builds/201901.mbox/browser if you interested why is it important to trigger build only for the whitelisted users/organizations)
Summary: The second approach seems to be more better for Ozone (as of now)
Workarounds: as of now the experimental Jenkinsjob uses my credentials and started from a linode cloud server (I got free 50$ at ApacheCon, which is used here to support apache development). I will request the installation of the required notify plugin from INFRA to migrate it to the builds.apache.org. Until that I will try to find a way to publish the admin password (it's an empty box, I have no personal info there, happy to share)
Kubernetes (and other CNCF projects) use prow to manage the CI workflow.
It's an intelligent (pluggable) github PR bot + kubernetes job scheduler. The bot itself can be managed by /commands which are added to the PRs as comments.
As we have no public k8s server to test Ozone, the prow can't be used for us, but the approach could work. We may need some simple script which can do simple things on the PRs based on the current status or comments:
For example