eclipse-platform/eclipse.platform.resources

Add Github validation action

Closed this issue · 13 comments

Would be nice to have a Github verification build in additional to the sometimes very slow Jenkins servers.

@mickaelistria or @laeubi WDYT?

Give it a try ;-)

Wasn't that somehow limited by github in the sense we all in eclipse.org have some quotas on actions? @mbarbero ?

merks commented

Yes, I wondered that too. After all, the Jenkins servers are slow because we hammer them to death with long running builds and long running tests. I can't imagine that we have unlimited computer power on github...

Currently, GitHub actions are free (unlimited) for public repos:

GitHub Actions usage is free for both public repositories and self-hosted runners

(https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions)

Beware that this may change at any time. We recommend projects to carefully ponder this. We're witnessing a trend of diminishing free resources for OSS projects in the last couple of years, most of the time with very short notice:

We often hear that any changes to CI is pain for developers. Moving from Jenkins to GH actions, and maybe to something else when GH actions will not be free (or unlimited enough) anymore may be an acceptable cost/risk to projects. Or not.

There is no such thing as unlimited computer power and in the end we are all limited :-)

https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits

Can someone tell what is an API request and if that is used by us?
The limits are applied per organization or per repository?
So if that per organization, https://github.com/eclipse-pde and https://github.com/eclipse-jdt should not be same organization, right? Or eclipse.org is somehow the common organization?
The "interesting" limits are for 1000 API requests per hour, 20 concurrent jobs.

So if that per organization, https://github.com/eclipse-pde and https://github.com/eclipse-jdt should not be same organization

That's how i understand this, a normative answer can only be given by github-support I think

The "interesting" limits are for 1000 API requests per hour, 20 concurrent jobs.

If anyone is interested at tycho I have set it up that oboslete jobs are canceled:

https://github.com/eclipse/tycho/blob/b1b992c877026f9d0903f58011835d7dc4996559/.github/workflows/maven.yml#L5-L7

beside that github recommends to enable parallel builds (-T1C) and caches to cut down the time of an individual run. At tycho I have never noticed any rate limiting (yesterday a job was canceld because it seems to run for more than a few hours because of networking problems.

In the wend, we can try that out, no one claims that we want to replace eclipse CI, but for example the GH action can run a fast compile check and the integration test can run overnight at eclipse-infra... in the end it is also possible to connect custom runners if anyone like to spend more processing power...

merks commented

I suspect that the compile test is not such an interesting thing given we don't expect people to commit code that doesn't compile (I guess). Forgetting to increment minor versions is often a problem with a long cycle to notice and to fix. But, in the end, the tests are the most useful thing I think...

And yes, we should not replace Jenkins but rather augment it, if that's not too much effort...

@merks All generalizations are false, including this one ;-)

So just keep it as an example, so GH action might be used as a quick-check, full build, backup only manually triggered, adding additional value (e.g. automatic rebase) we should just try it out 👍

e.g. as far as I know eclipse ci are (mostly) limited to linux for the usual project while GH action can run on windows/mac as well...

First version of Github action merged not yet including the test execution. Please feel free to enhance. #18

It seems one of the project leads need to enable gh actions for this repository.

@laeubi I don't see this option in the UI @akurtakov do you see it?

We don't have such permissions. Requested here https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/1094