Repository navigation
CI: run Build and test on a self-hosted Dockiva runner - #64
Merged
Merged
Conversation
The job runs on an ephemeral actions/runner (linux/arm64) in a Dockiva container on a maintainer's Mac. Fork PRs, and runs while the repository variable CI_RUNNER is 'hosted', stay on GitHub-hosted ubuntu-24.04. Setup and the runner image are in scripts/ci-runner.
go test -tags gtk3 needs cgo (gcc, pkg-config), as on hosted Ubuntu. On Dockiva releases without the case-sensitive engine store, dpkg can't install linux-libc-dev's xt_CONNMARK.h/xt_connmark.h pairs; exclude the uppercase ones until that store ships.
Dockiva's 2 GiB default container budget killed the runner during a cold cgo go test ./... (engine: out of memory: killed process).
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.
Summary
ci.ymlBuild and test now runs on the self-hosted labeldockiva: GitHub'sactions/runner(linux/arm64) in a Dockiva container on the maintainer's Mac.ubuntu-24.04, so outside code never runs on the Mac.CI_RUNNER=hostedto send every run toubuntu-24.04. Without it, runs wait in the queue until the Mac and Dockiva are back.scripts/ci-runner/holds the runner image, a launchd loop that registers one single-use JIT runner per job (fresh container each time, no stored GitHub credential), and setup docs.release.ymlis unchanged and stays on hosted runners.Dockiva workarounds in the runner image
sudo apt-get update(apt's_aptsandbox sets no_new_privs), latersudocalls in the same container lose root on the current engine.xt_CONNMARK.hvsxt_connmark.h): the released engine stores files case-insensitively. The fix is on engine main (af61a4e), not yet released.-m 8g). The engine's 2 GiB default OOM-killed a cold cgogo test ./....build-essentialandpkg-configare installed because wails' gtk3 code needs cgo, as on hosted Ubuntu.Test plan
dockivarunner (run 42575163253, 6.5 min with a cold arm64 Go cache; the setup-go cache save took 2.7 min of that).