Yes, per project budget will be great.

Beside cancellation workaround, Apache Spark is trying another workaround
for the time being: distributing workflow runs
to forked repositories to leverage contributor's GitHub Actions resources
instead of consuming all ASF organisation resources.

Please see also how I implemented it if anyone is interested in this - the
PR description should be self-explanatory:
- https://github.com/apache/spark/pull/32092
- https://github.com/apache/spark/pull/32193

Note that this is still a workaround and it disables GitHub Actions work
out of the box.


On Fri, 16 Apr 2021, 22:26 Matt Sicker, <boa...@gmail.com> wrote:

> I thought one of the key points raised by Jarek before was that even with
> infinite compute resources, unoptimized actions will fill up all the
> compute (like how widening highways induces higher traffic demand). The
> per-PMC compute budgets sounds like a great way to help “shift left” on the
> problem to avoid demanding Infra fix hundreds of scripts they know nothing
> about. The other optimizations Jarek has demonstrated here like ensuring
> old commits get cancelled in favor of new commits, or more sophisticated
> things like only running tests that are relevant to the commit, can all go
> a long way toward optimizing build compute.
>
> Now if you’re attempting to run entire integration and end to end test
> suites on every commit, I don’t think the earth has enough compute power
> for that quite yet!
>
> On Fri, Apr 16, 2021 at 07:44 Hyukjin Kwon <gurwls...@gmail.com> wrote:
>
> > I thought Jarek was pretty clear on that. I meant this:
> >
> > > So it all has to start with 'per-project' resource limitation and self-
> > > budgeting. It would be GREAT if infra.could provide self-hosted GitHub
> > > Runners SERVICE per project, where project could donate credits or
> money
> > > for their own account, then the projects would have incentive to
> optimize
> > > their own usage. I imagine this would be the best thing since the
> sliced
> > > bread that INFRA could provide to all the projects.
> >
> > Maintaining and providing a self-hosted runners in GitHub Actions where
> the
> > resources are managed in project level where each project can donate
> > credits.
> >
> > In addition, Jarek mentioned that Airflow already has a working version -
> > is it correct Jarek?
> >
> > If the infra team takes and improves it for other ASF projects, that
> would
> > permanently resolve this issue.
> >
> > This suggestion looks reasonable and realistic to me.
> >
> > How do you think about this?
> >
> >
> > On Fri, 16 Apr 2021, 21:36 Martin Grigorov, <mgrigo...@apache.org>
> wrote:
> >
> > > Hi Hyukjin,
> > >
> > > On Fri, Apr 16, 2021 at 3:04 AM Hyukjin Kwon <gurwls...@gmail.com>
> > wrote:
> > >
> > > > Hi all,
> > > >
> > > > Is here the right place to expect feedback from the infra team or
> > related
> > > > people?
> > > > It would be great to hear what the infra team thinks about Jarek's
> > > > suggestion.
> > > >
> > >
> > > What suggestion exactly do you mean ?
> > > I've just re-read Jarek's email and I see 3 tasks for Github Actions
> > team,
> > > but nothing specific for Apache Infra team.
> > >
> > >
> > > >
> > > >
> > > > 2021년 4월 13일 (화) 오전 11:15, Hyukjin Kwon <gurwls...@gmail.com>님이 작성:
> > > >
> > > >> Hi all,
> > > >>
> > > >> Could we have any update and feedback from the INFRA team about
> > Jarek's
> > > >> suggestion please?
> > > >>
> > > >> 2021년 4월 9일 (금) 오전 7:06, Jarek Potiuk <ja...@potiuk.com>님이 작성:
> > > >>
> > > >>>
> > > >>>> That's a good idea. We do need to thank Github to give free
> > resources
> > > to
> > > >>>> ASF projects, but it's better if we can make it a business: we
> allow
> > > >>>> individual projects to sign deals with Github to get dedicated
> > > >>>> resources.
> > > >>>> It's a bit wasteful to ask every project to set up its own dev
> ops,
> > > >>>> using Github Action is more convenient. Maybe we should raise it
> to
> > > >>>> Github?
> > > >>>>
> > > >>>
> > > >>> I do not think you can get per-project resources in GH - the most
> you
> > > >>> can do are self-hosted runners for your project.
> > > >>>
> > > >>> (BTW I am not from the INFRA team - just a humble "CI person" of
> > Apache
> > > >>> Airflow but very much vested into Github Actions)
> > > >>> maybe the infra team can chime in here. We did raise it to GitHub,
> we
> > > >>> even had meeting with them
> > > >>> organized by Gavin and several topics were raised that could be
> > > >>> eventually addressed by Github:
> > > >>>
> > > >>> - observability (they could not give us per-project usage
> dashboard -
> > > we
> > > >>> built our own imperfect (with API limitations) one by Tobiasz from
> > > Airllow
> > > >>> - security (limiting access to only project committers) - this we
> > > >>> handled by the Ash's fork of Runner (but it's also imperfect - even
> > > today I
> > > >>> had to fix a problem where we had list of committers desynchronised
> > > between
> > > >>> our infra/CI.yml)
> > > >>> - manageability (assigning resources per-project) - this works by
> > > having
> > > >>> self-hosted runners assigned per project (we needed infra JIRA
> ticket
> > > and
> > > >>> generation of a bunch of tokens for our runners and our own AWS
> > account
> > > >>> with auto-scaling).
> > > >>>
> > > >>> It would be indeed great if it could be available from GitHub, but
> so
> > > >>> far we do not have any of those.
> > > >>>
> > > >>> J.
> > > >>>
> > > >>>
> > > >>>
> > > >>>> On Wed, Apr 7, 2021 at 9:31 PM Hyukjin Kwon <gurwls...@gmail.com>
> > > >>>> wrote:
> > > >>>>
> > > >>>> > Thanks Martin for your feedback.
> > > >>>> >
> > > >>>> > > What was your reason to migrate from Apache Jenkins to Github
> > > >>>> Actions ?
> > > >>>> >
> > > >>>> > I am sure there were more reasons for migrating from Amplap
> > Jenkins
> > > >>>> > <https://amplab.cs.berkeley.edu/jenkins/> to GitHub Actions but
> > as
> > > >>>> far as
> > > >>>> > I can remember:
> > > >>>> > - To reduce the maintenance cost of machines
> > > >>>> > - The Jenkins machines became unstable and slow causing CI jobs
> to
> > > >>>> fail or
> > > >>>> > be very flaky.
> > > >>>> > - Difficulty to manage the installed libraries.
> > > >>>> > - Intermittent unknown issues in the machines
> > > >>>> >
> > > >>>> > Yes, one option might be to consider other options to migrate
> > again.
> > > >>>> > However, other projects will very likely suffer the
> > > >>>> > same problem. In addition, the migration in a large project is
> not
> > > an
> > > >>>> > easy work to do
> > > >>>> >
> > > >>>> > I would like to know the feasibility of having more resources in
> > > >>>> GitHub
> > > >>>> > Actions, or, for example, having sub-groups where
> > > >>>> > each group shares the resources - currently one GitHub
> > organisation
> > > >>>> shares
> > > >>>> > all resources across the projects.
> > > >>>> >
> > > >>>> >
> > > >>>> > 2021년 4월 7일 (수) 오후 10:04, Martin Grigorov <mgrigo...@apache.org
> > >님이
> > > >>>> 작성:
> > > >>>> >
> > > >>>> >>
> > > >>>> >>
> > > >>>> >> On Wed, Apr 7, 2021 at 3:41 PM Hyukjin Kwon <
> gurwls...@gmail.com
> > >
> > > >>>> wrote:
> > > >>>> >>
> > > >>>> >>> Hi Greg,
> > > >>>> >>>
> > > >>>> >>> I raised this thread to figure out a way that we can work
> > together
> > > >>>> to
> > > >>>> >>> resolve this issue, gather feedback, and to understand how
> other
> > > >>>> projects
> > > >>>> >>> work around.
> > > >>>> >>> Several projects I observed, as far as I can tell, have made
> > > enough
> > > >>>> >>> efforts
> > > >>>> >>> to save the resources in GitHub Actions but still suffer from
> > the
> > > >>>> lack of
> > > >>>> >>> resources.
> > > >>>> >>>
> > > >>>> >>
> > > >>>> >> And it will get even worse because:
> > > >>>> >> 1) more and more Apache projects migrate from TravisCI to
> Github
> > > >>>> Actions
> > > >>>> >> (GA)
> > > >>>> >> 2) new projects join ASF and many of them already use GA
> > > >>>> >>
> > > >>>> >>
> > > >>>> >> What was your reason to migrate from Apache Jenkins to Github
> > > >>>> Actions ?
> > > >>>> >> If you want dedicated resources then you will need to manage
> the
> > CI
> > > >>>> >> yourself.
> > > >>>> >> You could use Apache Jenkins/Buildbot with dedicated agents for
> > > your
> > > >>>> >> project.
> > > >>>> >> Or you could set up your own CI infrastructure with Jenkins,
> > > DroneIO,
> > > >>>> >> ConcourceCI, ...
> > > >>>> >>
> > > >>>> >> Yet another option is to move to CircleCI or Cirrus. They are
> > > >>>> similar to
> > > >>>> >> TravisCI / GA and less crowded (for now).
> > > >>>> >>
> > > >>>> >> Martin
> > > >>>> >>
> > > >>>> >> I appreciate the resources provided to us but that does not
> > resolve
> > > >>>> the
> > > >>>> >>> issue of the development being slowed down.
> > > >>>> >>>
> > > >>>> >>>
> > > >>>> >>> 2021년 4월 7일 (수) 오후 5:52, Greg Stein <gst...@gmail.com>님이 작성:
> > > >>>> >>>
> > > >>>> >>> > On Wed, Apr 7, 2021 at 12:25 AM Hyukjin Kwon <
> > > gurwls...@gmail.com
> > > >>>> >
> > > >>>> >>> wrote:
> > > >>>> >>> >
> > > >>>> >>> >> Hi all,
> > > >>>> >>> >>
> > > >>>> >>> >> I am an Apache Spark PMC,
> > > >>>> >>> >
> > > >>>> >>> >
> > > >>>> >>> > You are a member of the Apache Spark PMC. You are *not* a
> PMC.
> > > >>>> Please
> > > >>>> >>> stop
> > > >>>> >>> > with that terminology. The Foundation has about 200 PMCs,
> and
> > > you
> > > >>>> are a
> > > >>>> >>> > member of one of them. You are NOT a "PMC" .. you're a
> > person. A
> > > >>>> PMC
> > > >>>> >>> is a
> > > >>>> >>> > construct of the Foundation.
> > > >>>> >>> >
> > > >>>> >>> > >...
> > > >>>> >>> >
> > > >>>> >>> >> I am aware of the limited GitHub Actions resources that are
> > > >>>> shared
> > > >>>> >>> >> across all projects in ASF,
> > > >>>> >>> >> and many projects suffer from it. This issue significantly
> > > slows
> > > >>>> down
> > > >>>> >>> the
> > > >>>> >>> >> development cycle of
> > > >>>> >>> >>  other projects, at least Apache Spark.
> > > >>>> >>> >>
> > > >>>> >>> >
> > > >>>> >>> > And the Foundation gets those build minutes for GitHub
> Actions
> > > >>>> >>> provided to
> > > >>>> >>> > us from GitHub and Microsoft, and we are thankful that they
> > > >>>> provide
> > > >>>> >>> them to
> > > >>>> >>> > the Foundation. Maybe it isn't all the build minutes that
> > every
> > > >>>> group
> > > >>>> >>> > wants, but that is what we have. So it is incumbent upon all
> > of
> > > >>>> us to
> > > >>>> >>> > figure out how to build more, with fewer minutes.
> > > >>>> >>> >
> > > >>>> >>> > Say "thank you" to GitHub, please.
> > > >>>> >>> >
> > > >>>> >>> > Regards,
> > > >>>> >>> > -g
> > > >>>> >>> >
> > > >>>> >>> >
> > > >>>> >>>
> > > >>>> >>
> > > >>>>
> > > >>>
> > > >>>
> > > >>> --
> > > >>> +48 660 796 129
> > > >>>
> > > >>
> > >
> >
>

Reply via email to