Repository navigation
ci: run tests and analysis on self-hosted runners, builds stay on GitHub - #1102
Merged
ZhuchkaTriplesix merged 1 commit intoOct 7, 2026
Merged
Conversation
Tests and analysis pick their runner from the CI_RUNS_ON repository variable (default ubuntu-latest); pull requests from forks always use GitHub-hosted runners. Add scripts/ci/setup-runner.sh to prepare a machine and register runners, and docs/ci-runners.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1101 (parallel test sections); retarget to
devonce that is merged.Summary
Tests and static analysis can run on our own Proxmox machine; builds stay on GitHub.
ci.yml: thetest-sectionsmatrix andanalyzechoose their runner withruns-on: <PR from a fork> ? ubuntu-latest : fromJSON(vars.CI_RUNS_ON || "ubuntu-latest").CI_RUNS_ONis the switch: unset = GitHub-hosted (the default today, so merging this changes nothing by itself);["self-hosted","linux","querya-ci"]= our runners; deleting it switches back without a PR.apt-getstep is skipped (packages are installed once on the machine) andflutter testuses--concurrency=2, since four runners share one machine.build-linux-releaseand all ofrelease.yml(Windows, macOS with signing, Linux packages) are unchanged and stay on GitHub-hosted runners.scripts/ci/setup-runner.sh: idempotent setup for a Debian/Ubuntu VM or LXC: installs the test packages, creates an unprivilegedrunneruser without sudo, registers N runners (querya-ci-1..N, labelquerya-ci) as systemd services.docs/ci-runners.md(linked fromdocs/README.md): how the runner is picked, the switch, repository settings, operating notes.Already done outside this PR
approval_policy = all_external_contributors).querya-ci(8 cores, 16 GiB, 80 GiB, internal network) with this script copied to/root/setup-runner.sh. The runners are not registered yet, so nothing uses them untilCI_RUNS_ONis set.Rollout
scripts/ci/setup-runner.shinside the container).gh variable set CI_RUNS_ON --body '["self-hosted","linux","querya-ci"]'.