Expand description
Records of failed jobs: which runner containers may be kept, the files a record must never hold, which records go
to keep within [records], and what a shell in a record shows first. Pure functions: the engine
(scheduler::engine) commits, lists and removes the images, and the daemon serves the shell.
A record is the runner container’s own layer, committed as the image runnerd-record:<job> once the runner
exited: the workspace and everything else the job wrote outside the slot’s volumes. When the runner exits, the
runner image’s entrypoint deletes what the job added or changed among the runner’s dot-files and in the temporary
directories, and the step scripts (image/scrub.sh); before a commit, secrets_left checks the container’s
changed paths and the engine keeps no record that still holds one.
Constants§
- IMAGE
- The repository of every record image; the tag is the job’s ID.
- LABEL
- The label every record image carries, with the job’s ID.
- SHELL_
LABEL - The label every shell container carries, with the job’s ID.
Functions§
- banner
- What a shell in a job’s record prints before its prompt: the job, the step (
step, or the one that failed), what the step ran as its log shows it, and what the record lacks.logis the job’s stored log. Lines end in\r\n, for a terminal in raw mode. - expired
- The records older than
max_ageatnow, but those with a shell open. - failed
- Whether a runner’s output says its job failed.
- image
- The image of a job’s record.
- listed
- The first few of
paths, and how many more there are: a container without the scrub may have changed thousands. - make_
room - Which records go, and why, before a new record of
incomingbytes is made; or why it is not made. Records inopenhave a shell open and stay.freeis the disk Docker has left, when known. Expired records go too. - secrets_
left - The changed paths of a runner container that a record must not hold: anything added or modified among the
runner’s dot-files but the
HARMLESStoolchains, in the temporary directories, or where the runner keeps the JIT config and step scripts. A record of it must not be made.changedare the paths Docker reports added or modified. - workspace
- The directory a job’s steps run in by default:
GITHUB_WORKSPACE.