should we proceed with this?

most important points:

 - labeling PRs will be important, if you don't label anything: only ~3h of tests/builds will run  - labels are picked up before every CI run (changing labels and syncing is fine)  - label your PR before pressing the create PR button, otherwise the first run is wasted  - reviewers should check if sufficient testing was done before merging, esp if its from new contributors

why all the effort?

 - it should use far less resources in average
 - more jobs on gh actions means we get better error reports if something fails etc
 - less travis

-> https://github.com/apache/netbeans/pull/4431

regards,
-mbien

On 10.08.22 19:22, Michael Bien wrote:
Hello devs,

while migrating some jobs from travis to github CI, I started making some (time consuming) jobs and/or build steps conditional based on PR labels.

I keep it here short since most of the info is in the PR text, but as example:

The new test job called "Build Tools" would only run if the PR is labeled with Ant, Gradle, Maven or MX.

There are also additional command labels available, ci:all-tests would enable everything, while ci:no-build would as you would guess disable everything (e.g if all what the PR does is to edit a readme or sync-PRs which syncs two branches could use this too, since they build everything twice right now).

This is just about PRs, the merge will always test everything on master.


Why labels and not path based dependency checks? Because they never work outside of fairly trivial cases in my experience. They either test too much or not enough and whats worse: the dev has to second guess if the right things are actually being tested - if they aren't there must be also a second mechanism to override the automation.

With labels, reviewers can decide what needs to be tested based on experience. A correctly labeled PR should "just work" most of the time even if you wouldn't know about the details. However, everyone still has to know about it: If you want the right things to be tested, you have to label the PR _before_ pressing the create button, otherwise the first run will have the wrong settings. (syncs will pick up new labels)

I was considering to fail the build for PRs without labels (not implemented).

https://github.com/apache/netbeans/pull/4431

feedback appreciated,

michael



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to