summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2021-10-21container: set process nameMatthias Schiffer
2021-10-21executor: run ready tasks in parallelMatthias Schiffer
2021-10-21runner: expose reply channelMatthias Schiffer
2021-10-21util: error: improve conversion of io::ErrorMatthias Schiffer
Convert the whole source chain.
2021-10-21container: make setup more similar to OCI runtimeMatthias Schiffer
- Make whole tree MS_PRIVATE - Create extra mount namespace after creating container mounts
2021-10-21paths: update documentationMatthias Schiffer
2021-10-20container: write task command to script fileMatthias Schiffer
2021-10-20container: do not call sync_all() on log fileMatthias Schiffer
Saves a few ms per task.
2021-10-20container: do not use unshare commandMatthias Schiffer
We can create the user namespace ourselves.
2021-10-20container: replace crun with our own minimal container runtimeMatthias Schiffer
Our own setup is more flexible, faster, and allows for better process management.
2021-10-20container: replace chroot() with pivot_root()Matthias Schiffer
2021-10-20container: bind mount rootfs onto itselfMatthias Schiffer
Required to pivot_root() into the rootfs. While we're at it, also make it read-only to prevent accidental changes.
2021-10-20container: tar: run without crunMatthias Schiffer
Set up a new mount namespace, so we can mount over the shared rootfs. Replace crun with a simple chrooted exec.
2021-10-20container: move namespace setup helpers to new moduleMatthias Schiffer
We also add new helper that is not used yet.
2021-10-20container: create basic dirs, devs and links under /devMatthias Schiffer
Make the unpacked rootfs more usable without a full container runtime.
2021-10-20container: create PID namespace for runnerMatthias Schiffer
Takes care of killing all tasks when the runner dies.
2021-10-20util: clone: add spawn() helper, use in runnerMatthias Schiffer
2021-10-18Pass None instead of Some("none") as fstype for bind mountsMatthias Schiffer
2021-10-18container: measure task runtime againMatthias Schiffer
2021-10-18container: rename "run" module to "task"Matthias Schiffer
2021-10-18Update dependenciesMatthias Schiffer
2021-10-18util: improve formatting of exit status errorsMatthias Schiffer
2021-10-18executor: use into_iter() instead of iter() in task_deps()Matthias Schiffer
2021-10-18Move task cache handling from executor to runnerMatthias 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-18executor: store TaskOutput instead of TaskMeta in tasks_doneMatthias Schiffer
Preparation for moving more of the caching logic to the runner.
2021-10-18Update dependenciesMatthias Schiffer
2021-10-18examples: delete autotools config.log and similar filesMatthias 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-18executor: summary: sort outputs by nameMatthias Schiffer
2021-10-18examples: rootfs: make build reproducibleMatthias Schiffer
2021-10-18examples: linux: make build reproducibleMatthias Schiffer
2021-10-18executor: set SOURCE_TIME_EPOCH to 1Matthias 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-18examples: add make_ext4fs recipeMatthias Schiffer
Used to generate reproducible rootfs images.
2021-10-18container: give tasks access to their input hashMatthias Schiffer
The input hash can be used as a deterministic random seed.
2021-10-18examples: busybox: make build reproducibleMatthias Schiffer
Remove timestamp from binary.
2021-10-18container: harden against set-group-ID / bsdgroups weirdnessMatthias Schiffer
Fix up group and mode of layer/work directory for reproducibility.
2021-10-18container: only create overlayfs workdir when neededMatthias Schiffer
2021-10-18Remove/simplify mkdir() callsMatthias Schiffer
std's DirBuilder can handle concurrent calls just fine, so we don't need to create parent directories in advance.
2021-10-18Update dependenciesMatthias Schiffer
2021-10-18args: move Rc into Arg enumMatthias Schiffer
Significantly improves usability of the Arg type.
2021-10-18Move tar unpack function into container moduleMatthias Schiffer
unpack() is only used in the runner, so we can put pack() and unpack() in the same place.
2021-10-13container: pack outputs after unmounting task mountsMatthias 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-13Update dependenciesMatthias Schiffer
2021-10-13examples: busybox: remove symlink for strings commandMatthias Schiffer
Avoid conflict with GCC package.
2021-10-13examples: gcc: fix header-stubs file confict for host==target buildsMatthias Schiffer
2021-10-12util: tar: do not allow overwriting files when unpackingMatthias Schiffer
2021-10-12context: better error reporting for task ref parse errorsMatthias Schiffer
2021-10-12context: allow passing host and target arguments when parsing tasksMatthias Schiffer
2021-10-12context: switch from {host->target} to @host/target for alternative task ref ↵Matthias Schiffer
display Make this easier to type in a shell.
2021-10-12Delete state dir for unfinished tasks in runner, not in executorMatthias Schiffer
Make use of CAP_DAC_OVERRIDE in the runner namespace.
2021-10-12context: move generation of default arguments to parse()Matthias Schiffer