Adopt a UCI-sponsored self-hosted GitHub Actions runner #6973
Replies: 2 comments 4 replies
|
I maintain an older but analogous system for AsterixDB's build (Jenkins instead of GHA). I will say that it is a bit of a task to manage, and often one that is kind of a chore. Often I think folks really only notice it when it breaks, not when something is done to improve or maintain it. That's just a perennial problem in any infrastructure, however. My views on this might be biased by being tasked with Jenkins which is really a troublesome system; GHA should be less annoying. For benchmarks it makes a lot of sense.. It's also easier to just be able to alter or look at something directly if you manage it. It's come in handy many times, particularly in the earlier days of AsterixDB when there were more odd bugs lurking about that required special setups to pin down. I think a machine of that spec should be sufficient. I actually migrated all of the previous builders for AsterixDB onto a machine of similar spec a few years ago (Threadripper 5975WX with 256GB, using VMs to parallelize) and it has been just fine. Before that it was an assortment of discrete machines (NUCs and others) but this lead to a lot of maintenance overhead, because they weren't uniform and ephemeral (e.g. PXE booted, or something similar). |
|
Hello Yicong, thank you for starting this discussion. I think a UCI-sponsored runner could be valuable, particularly for reducing queueing and making performance tests more reproducible. We operate something similar for Apache AsterixDB at UCI. A UCI-hosted Jenkins installation receives repository webhooks and can execute builds in parallel, reporting test results back to Gerrit (also UCI-hosted) as verification votes. AsterixDB uses Gerrit as its primary review system and mirrors the repository to GitHub, so the integration differs from Texera’s GitHub-centered workflow, but the operational experience is relevant: dedicated hardware gives us greater control over parallelism, installed software, caches, and performance-test conditions. For Texera, I would initially favor keeping GitHub Actions as the workflow and reporting layer and supplying ephemeral UCI-hosted Actions runners underneath it. Moving to a separate Jenkins controller would introduce another CI configuration, user interface, authentication model, and failure surface. Jenkins becomes more attractive if we later need capabilities that are difficult to express in Actions, for example, managing a pool of machines, scheduling long-running benchmark campaigns, or coordinating deployments to persistent testing environments. Jenkins also has support/integration with Github Actions. Some things worth noting would be
|
Uh oh!
There was an error while loading. Please reload this page.
Hi everyone,
I'd like to start a discussion on whether Apache Texera (Incubating) should adopt a self-hosted GitHub Actions runner sponsored and hosted by UC Irvine (UCI).
Motivation
The motivation of adopting self-hosted runners are:
We do not have a GitHub Actions quota issue. Texera currently uses about 240k minutes/month (~60k/week), only 24% of ASF's weekly allocation.
Existing practice in ASF
I do not recommend Spark's fork-CI model, where contributors run CI from their own forks. Besides the contributor experience, it does not solve benchmark reproducibility.
Proposal
Use a UCI-sponsored self-hosted runner for trusted workflows.
Proposed Machine Spec (Up to revisions)
Routing
ubuntu-latestmerge_group/ trusted branches → self-hostedThis follows the same general approach as Apache Airflow.
Compared to GitHub-hosted runners, this removes shared-runner contention while also enabling warm build caches and a consistent benchmark environment.
Risks & ownership
Benchmark isolation. CPU pinning alone may not be sufficient. One option is to reserve dedicated benchmark windows.
Host failure. CI can fall back to GitHub-hosted runners by changing the runner label.
Security. Self-hosted runners remain ephemeral and execute only trusted workflows. Fork PRs continue to use GitHub-hosted runners.
Ownership. The machine would be hosted and maintained by UC Irvine. ASF Infra would only manage the runner registration.
Discussion
I'd appreciate feedback on:
If there is consensus, I'll follow up with a [VOTE] on the dev mailing list and an ASF INFRA request.
All reactions