Hello Devs,

the ASF released new gh CI guidelines for apache projects which will come into effect on April 20:
https://infra.apache.org/github-actions-policy.html

we are above some limits unfortunately (e.g "concurrency level").

I had some conversations on the #asfinfra channel on apache slack to get a better idea for what to optimize for and could confirm my suspicion that even though the guideline is highlighting node count and similar metrics, the main intend is to put boundaries on costs, and CI node minutes are the main factor on the github bill.

This is actually good news for us, since reducing node count would be difficult to achieve due to the fact how many areas IDE tests cover - but making CI more efficient is something we try to do anyway. However this doesn't mean that we should simply ignore the guideline for "concurrency level", its just that it comes secondary to the total-time-spent value of the workflow.

I am proposing to do the following:

 - reduce node count slightly by merging some jobs

 - add more labels for more control over what is tested

 - test even less if labels are not set

The last point is the significant one. I got asked a few times questions like: "why are enterprise tests running even though I didn't set the label for it". The reason for that was because labels did in some cases only enable additional, long running steps _within_ jobs so that there would be still _some_ coverage in a unlabeled PR in an attempt to keep master more stable.

This would now change. If there is no "Java" label on the PR, no java specific tests will run and a "Java" labeled PR will run no PHP, Groovy... etc tests. Further:

- 'git', 'subversion' and 'mercurial' labels trigger the versioning job

- 'Java EE/Jakarta EE', 'Micronaut' and 'enterprise' labels trigger the enterprise job

- 'JavaScript', 'TypeScript', 'HTML', 'CSS', 'CSL' and 'web' labels trigger the web job

- 'Ant', 'Gradle', 'Maven' and 'MX' labels trigger the build-tools job (same as before)

Additionally: CI-runs outside of PRs would test with a reduced matrix and leave a few things out. To stick with the same example as above, a PR labeled with "Java" might have more components in the matrices of the java jobs than the post-merge workflow run.


As always I am going to update the label descriptions so that they reflect what the labels do. All labels which influence CI have their description prefixed with [ci] so that they show up in the search on github (see wiki for screenshots *).

PR: https://github.com/apache/netbeans/pull/7206

thoughts / comments appreciated, now its a good time to change things,

best regards,

michael


* https://cwiki.apache.org/confluence/display/NETBEANS/PRs+and+You+-+A+reviewer+Guide


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
For additional commands, e-mail: dev-h...@netbeans.apache.org

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



Reply via email to