Skip to main content

Module record

Module record 

Source
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. log is the job’s stored log. Lines end in \r\n, for a terminal in raw mode.
expired
The records older than max_age at now, 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 incoming bytes is made; or why it is not made. Records in open have a shell open and stay. free is 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 HARMLESS toolchains, in the temporary directories, or where the runner keeps the JIT config and step scripts. A record of it must not be made. changed are the paths Docker reports added or modified.
workspace
The directory a job’s steps run in by default: GITHUB_WORKSPACE.