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