Skip to content

ci: run the workflows on the runplane runners - #7

Merged
ephraimduncan merged 1 commit into
mainfrom
ci/runplane-runners
Nov 5, 2026
Merged

ephraimduncan merged 1 commit into
mainfrom
ci/runplane-runners

Conversation

@ephraimduncan

Copy link
Copy Markdown
Contributor

The jobs of all four workflows use runs-on: runplane, except the install job of ci.yml. That job installs Sysbox and the systemd units, then examines runplane.service. runplane sandboxes start runplane-init as PID 1 and have no systemd, thus that job stays on ubuntu-24.04.

The image builds use QEMU for the architecture that the runner does not have. That build is much slower than a build on a native runner. kernel.yml installs only the gcc-aarch64-linux-gnu cross compiler, thus the runplane server must be x86_64, as ubuntu-24.04 was.

Caution: Do not merge this change before you change the runplane settings. This repository is public, and runplane takes jobs of a public repository only in VM mode with allow_public_repos on. Without that setting, all jobs stay in the queue. runplane takes jobs of fork pull requests only with allow_fork_prs on. With that setting, a pull request from a fork can run code in a VM on the server.

The jobs of ci.yml, kernel.yml, images.yml, and release.yml use the
runplane label.

The install job of ci.yml stays on ubuntu-24.04. That job installs
Sysbox and the systemd units, and runplane sandboxes have no systemd.

The image builds use QEMU for the architecture that the runner does not
have. The shell job installs shellcheck, because the runplane base image
does not contain it.
@ephraimduncan
ephraimduncan merged commit 79d3da7 into main Nov 5, 2026
1 of 10 checks passed
ephraimduncan added a commit that referenced this pull request Nov 6, 2026
Merge 79d3da7, 1b78e39, and d27d5da of main. The features keep the
behavior of main. Each feature uses the packages of the refactor.

CI on the runplane runners (#7): the jobs use the runplane label, and the
image builds use QEMU. images.yml keeps the matrices of images.go and its
comment about the build context.

Image environment in VM mode (#9): internal/sandbox/guest owns
ImageEnvFile and its form. EncodeImageEnv writes the file in the root
disk, and runplane-init reads it with DecodeImageEnv. Thus the NUL
format has one place.

Pull requests that move jobs to runplane (#8):
- ghrest.Call has a JSON Body. ghrest.PullPermissions is part of
  AppPermissions, thus the manifest, the connect form, and the
  permission check use one list.
- github does not import huma. OpenPullRequest returns
  store.ErrNotFound, ghrest.ErrNoPullPermissions, or field.Problems, and
  the API changes them into 404, 403, and 422. Setup and the permission
  check read the installation through one function.
- The audit action github.pull_request.create is in the audit enum. Its
  detail has the repository, and the web has a text for it.
- The API gives permissions_url on the app. The web does not make the
  URL. The pull request description links to pages.Jobs.
- The label of the request has no pattern. The check against the
  enabled pools gives the 422 at body.label.
- The web finds the repositories with publicReposRun, the rule of the
  job access switch. Before, the web had a second rule that ignored dev
  mode and the modes of the servers.
- The route files only give params. The settings page and the first job
  step have the form. FormAlert moved to components/app, because the
  github pages must not import the setup pages.
ephraimduncan added a commit that referenced this pull request Nov 6, 2026
One conflict in internal/agent/agent_test.go: FX4 removed the check of
the driver settings alone, so the merge keeps its side.

In ci.yml, the jobs keep the runner labels of #7. The install job stays
on ubuntu-24.04 with the sandbox test step. That step now updates the
package lists before it installs nftables, as the shell job of #7 does.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant