Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-10-21 | container: set process name | Matthias Schiffer | |
2021-10-21 | executor: run ready tasks in parallel | Matthias Schiffer | |
2021-10-21 | runner: expose reply channel | Matthias Schiffer | |
2021-10-21 | util: error: improve conversion of io::Error | Matthias Schiffer | |
Convert the whole source chain. | |||
2021-10-21 | container: make setup more similar to OCI runtime | Matthias Schiffer | |
- Make whole tree MS_PRIVATE - Create extra mount namespace after creating container mounts | |||
2021-10-21 | paths: update documentation | Matthias Schiffer | |
2021-10-20 | container: write task command to script file | Matthias Schiffer | |
2021-10-20 | container: do not call sync_all() on log file | Matthias Schiffer | |
Saves a few ms per task. | |||
2021-10-20 | container: do not use unshare command | Matthias Schiffer | |
We can create the user namespace ourselves. | |||
2021-10-20 | container: replace crun with our own minimal container runtime | Matthias Schiffer | |
Our own setup is more flexible, faster, and allows for better process management. | |||
2021-10-20 | container: replace chroot() with pivot_root() | Matthias Schiffer | |
2021-10-20 | container: bind mount rootfs onto itself | Matthias Schiffer | |
Required to pivot_root() into the rootfs. While we're at it, also make it read-only to prevent accidental changes. | |||
2021-10-20 | container: tar: run without crun | Matthias Schiffer | |
Set up a new mount namespace, so we can mount over the shared rootfs. Replace crun with a simple chrooted exec. | |||
2021-10-20 | container: move namespace setup helpers to new module | Matthias Schiffer | |
We also add new helper that is not used yet. | |||
2021-10-20 | container: create basic dirs, devs and links under /dev | Matthias Schiffer | |
Make the unpacked rootfs more usable without a full container runtime. | |||
2021-10-20 | container: create PID namespace for runner | Matthias Schiffer | |
Takes care of killing all tasks when the runner dies. | |||
2021-10-20 | util: clone: add spawn() helper, use in runner | Matthias Schiffer | |
2021-10-18 | Pass None instead of Some("none") as fstype for bind mounts | Matthias Schiffer | |
2021-10-18 | container: measure task runtime again | Matthias Schiffer | |
2021-10-18 | container: rename "run" module to "task" | Matthias Schiffer | |
2021-10-18 | Update dependencies | Matthias Schiffer | |
2021-10-18 | util: improve formatting of exit status errors | Matthias Schiffer | |
2021-10-18 | executor: use into_iter() instead of iter() in task_deps() | Matthias Schiffer | |
2021-10-18 | Move task cache handling from executor to runner | Matthias Schiffer | |
The input hash and the state directory is only a concern of the runner this way; it is only passed to the executor at all for the summary output. We're losing some cache metadata this way, as the TaskMeta struct is removed completely. Timestamps can be added back easily, but to implement proper cache cleanup we will need a replacement for the args map. | |||
2021-10-18 | executor: store TaskOutput instead of TaskMeta in tasks_done | Matthias Schiffer | |
Preparation for moving more of the caching logic to the runner. | |||
2021-10-18 | Update dependencies | Matthias Schiffer | |
2021-10-18 | examples: delete autotools config.log and similar files | Matthias Schiffer | |
Improves reproducibility of task layers. While reproduciblity is not as important for layers as it is for outputs, this is low-hanging fruit and may improve cache usage. | |||
2021-10-18 | executor: summary: sort outputs by name | Matthias Schiffer | |
2021-10-18 | examples: rootfs: make build reproducible | Matthias Schiffer | |
2021-10-18 | examples: linux: make build reproducible | Matthias Schiffer | |
2021-10-18 | executor: set SOURCE_TIME_EPOCH to 1 | Matthias Schiffer | |
Eventually we will have a smarter way to set the timestamp, but for now this is sufficient. We do not use the value 0, as not all tools work correctly with it. | |||
2021-10-18 | examples: add make_ext4fs recipe | Matthias Schiffer | |
Used to generate reproducible rootfs images. | |||
2021-10-18 | container: give tasks access to their input hash | Matthias Schiffer | |
The input hash can be used as a deterministic random seed. | |||
2021-10-18 | examples: busybox: make build reproducible | Matthias Schiffer | |
Remove timestamp from binary. | |||
2021-10-18 | container: harden against set-group-ID / bsdgroups weirdness | Matthias Schiffer | |
Fix up group and mode of layer/work directory for reproducibility. | |||
2021-10-18 | container: only create overlayfs workdir when needed | Matthias Schiffer | |
2021-10-18 | Remove/simplify mkdir() calls | Matthias Schiffer | |
std's DirBuilder can handle concurrent calls just fine, so we don't need to create parent directories in advance. | |||
2021-10-18 | Update dependencies | Matthias Schiffer | |
2021-10-18 | args: move Rc into Arg enum | Matthias Schiffer | |
Significantly improves usability of the Arg type. | |||
2021-10-18 | Move tar unpack function into container module | Matthias Schiffer | |
unpack() is only used in the runner, so we can put pack() and unpack() in the same place. | |||
2021-10-13 | container: pack outputs after unmounting task mounts | Matthias Schiffer | |
The mounts for the tar container use the same mount points. Make things a bit less confusing by undoing the old mounts first. | |||
2021-10-13 | Update dependencies | Matthias Schiffer | |
2021-10-13 | examples: busybox: remove symlink for strings command | Matthias Schiffer | |
Avoid conflict with GCC package. | |||
2021-10-13 | examples: gcc: fix header-stubs file confict for host==target builds | Matthias Schiffer | |
2021-10-12 | util: tar: do not allow overwriting files when unpacking | Matthias Schiffer | |
2021-10-12 | context: better error reporting for task ref parse errors | Matthias Schiffer | |
2021-10-12 | context: allow passing host and target arguments when parsing tasks | Matthias Schiffer | |
2021-10-12 | context: switch from {host->target} to @host/target for alternative task ref ↵ | Matthias Schiffer | |
display Make this easier to type in a shell. | |||
2021-10-12 | Delete state dir for unfinished tasks in runner, not in executor | Matthias Schiffer | |
Make use of CAP_DAC_OVERRIDE in the runner namespace. | |||
2021-10-12 | context: move generation of default arguments to parse() | Matthias Schiffer | |