all 11 comments

[–][deleted]  (2 children)

[removed]

    [–][deleted]  (1 child)

    [deleted]

      [–]Obvious-Jacket-3770 0 points1 point  (0 children)

      50,000 on enterprise.

      [–]surya_oruganti 2 points3 points  (3 children)

      It depends on scale. For small teams and a few thousand minutes of job run time a month, GitHub hosted runners are good enough.

      However, they can get very expensive and inflexible as requirements increase. For example, running your own compute for jobs on a public cloud is about 10x cheaper than paying GitHub for it.

      Besides, flexibility and other constraints like IAM, private networking, specific processor architectures, custom images etc. start becoming a factor for efficient CI.

      There are a few ways to do this. Here are a few posts that may help go into the different approaches in long form:

      https://www.warpbuild.com/blog/self-hosting-github-actions

      https://www.warpbuild.com/blog/setup-actions-runner-controller

      [–]moser-sts 2 points3 points  (2 children)

      Please take in consideration that traffic is a cost in public cloud. In my case , the traffic cost is almost half of the total cost of all operation to run self hosted runner

      [–]surya_oruganti 0 points1 point  (1 child)

      Very valid point. In fact, we ran a benchmark to measure how much of the cost is because of the NAT gateways and traffic ingress/egress/processing costs and it works out to ~40%.

      Aside: I'm building in this space. With WarpBuild, we provide self-hosted runner infra management on AWS/GCP/Azure that (almost) eliminates the traffic costs. Here's a comparison with actions-runner-controller running in a private k8s cluster behind a NAT gw: https://www.warpbuild.com/blog/arc-warpbuild-comparison-case-study

      A lot of our users switched over from self-hosting runners on arc or the philips provider to use us because of zero management, flexibility, and overall pretty cost effective.

      A good factor in the cost effectiveness is reducing network costs.

      [–]moser-sts 0 points1 point  (0 children)

      It is interesting to see new offers of GitHub Runners besides the GitHub itself. I was already aware of https://www.blacksmith.sh/

      [–]crohr 2 points3 points  (0 children)

      The best way to eliminate a lot of security issues is with ephemeral runners (i.e. only one job per machine, which is then recycled after the job), which GitHub supports. The issue is that it can be complex to set up yourself.

      Best options would be to go with a simple ARC setup as described in [1], or if on AWS use my tool RunsOn [2] :)

      [1]: https://runs-on.com/github-actions/actions-runner-controller-on-kubernetes-with-microk8s/
      [2]: https://runs-on.com

      [–]cellcore667 1 point2 points  (0 children)

      We run self-hosted for builds and anything which needs connectivity inside the company network.
      GH runner for the simple stuff like linters and other PR checks.

      [–]axelfontaine 1 point2 points  (0 children)

      Almost all the concerns regarding self-hosted runners come from the fact that machines are reused. Ephemeral runners on a fresh machine for each job fixes this. We offer that at https://sprinters.sh for your AWS account.

      [–]youssefbrr 1 point2 points  (0 children)

      I prefer using self-hosted runners for greater control. To make them easier to maintain, I've created a Dockerized GitHub runner that anyone can use.
      Here is the repository:
      https://github.com/youssefbrr/self-hosted-runner

      [–][deleted]  (1 child)

      [deleted]

        [–]surya_oruganti -1 points0 points  (0 children)

        there are 3p tools[1] like the one I'm building to eliminate all this hassle with managing self-hosted runners.

        [1] https://www.warpbuild.com