Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-11-01 | runner: detect file conflicts in dependencies again | Matthias Schiffer | |
The new code will also detect conflicts between the rootfs and individual dependencies. | |||
2021-10-31 | driver: add to e2fsprogs to rootfs tasks | Matthias Schiffer | |
e2fsprogs is provided by our Debian-based rootfs image. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> | |||
2021-10-31 | driver: add toolchain prefix to PATH | Matthias Schiffer | |
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> | |||
2021-10-31 | runner: unpack dependencies only once | Matthias Schiffer | |
Reuse unpacked dependencies across multiple tasks by mounting them into a single task's build directory. We lose support for file conflict detection for now. | |||
2021-10-31 | runner: add Stack type | Matthias Schiffer | |
A Stack guarantees that elements are dropped in reverse push order. | |||
2021-10-30 | runner: set up /dev in separate directory | Matthias Schiffer | |
Preparation for removal of a single rootfs. | |||
2021-10-30 | runner: do not use tmpfs for temporary build directories | Matthias Schiffer | |
2021-10-30 | runner: move lockfile out of state directory | Matthias Schiffer | |
2021-10-30 | runner: remove unneeded reference reported by clippy | Matthias Schiffer | |
2021-10-30 | runner: verify hash when unpacking dependencies | Matthias Schiffer | |
2021-10-30 | examples: move recipes to subdirectory | Matthias Schiffer | |
2021-10-30 | driver: replace dependency cutoff with stub tasks | Matthias Schiffer | |
Instead of having the resolver decide whether a dependency is included in the rootfs, let the context replace the task definition with an empty stub. | |||
2021-10-30 | driver: context: change get()/index() argument to TaskRef | Matthias Schiffer | |
With the upcoming changes, we may need to return different TaskDefs depending on the passed arguments. | |||
2021-10-30 | driver: skip submission of empty tasks | Matthias Schiffer | |
2021-10-30 | Make TaskOutput input hash optional | Matthias Schiffer | |
The input hash is used for the summary output only. For empty tasks, we want to skip submitting the task to the runner at all, so there is no input hash. | |||
2021-10-30 | driver: context: more consistent use specification | Matthias Schiffer | |
2021-10-29 | driver: recipe: use common error types | Matthias Schiffer | |
2021-10-28 | Pass workdir from driver to runner | Matthias Schiffer | |
The paths modules of driver and runner do not contain any duplicates anymore. One remaining path that still appears in more places than it should is /build. | |||
2021-10-28 | runner: drop paths::abs() function | Matthias Schiffer | |
2021-10-28 | Move handling of current directory of task to driver | Matthias Schiffer | |
2021-10-28 | Pass target directory for download archives from driver to runner | Matthias Schiffer | |
2021-10-28 | Split paths module into driver and runner parts | Matthias Schiffer | |
There are still a few remaining paths that are defined in both driver and runner. | |||
2021-10-28 | Pass full Output path to runner | Matthias Schiffer | |
Concatenate TASK_DESTDIR with output path in driver instead of runner to reduce amount of shared logic between driver and runner. | |||
2021-10-28 | Rename executor to driver | Matthias Schiffer | |
2021-10-28 | executor: move some state into separate struct | Matthias Schiffer | |
2021-10-28 | executor: use lazy_static for template engine | Matthias Schiffer | |
2021-10-27 | runner: get rid of spawn argument funnelling | Matthias Schiffer | |
2021-10-27 | runner: tar: simplify spawn call | Matthias Schiffer | |
The writing end of the pipe is moved to the child process, there is no need to funnel it back to the parent process just to drop it. | |||
2021-10-27 | runner: add Steal wrapper, use for socket | Matthias Schiffer | |
A deref wrapper that allows taking out its contents, which is convenient after a fork. | |||
2021-10-26 | runner: move Checkable trait into separabe module | Matthias Schiffer | |
2021-10-26 | runner: remove another layer of child processes | Matthias Schiffer | |
With the restructuring around the poll loop and moving the job token handling to the task process, this has become unnecessary as well. | |||
2021-10-26 | runner: move jobserver token handling into task process | Matthias Schiffer | |
We can avoid holding onto a token while waiting on a lock this way. Abnormal exits that would make us lose tokens should not happen here; if they do, the runner PID1 will stop the whole build, so a lost token does not matter. | |||
2021-10-26 | runner: maintain list of task PIDs in context | Matthias Schiffer | |
2021-10-26 | runner: add RunnerContext struct | Matthias Schiffer | |
Bundle common variables passed to different functions. | |||
2021-10-26 | runner: move more code into the actual task process | Matthias Schiffer | |
Leave only the jobserver token handling in the task spawner process. | |||
2021-10-26 | runner: pass jobserver to task handler as reference | Matthias Schiffer | |
Some code simplification. | |||
2021-10-26 | runner: handle reaping and requests in the poll loop | Matthias Schiffer | |
2021-10-26 | runner: wait for signals using poll() | Matthias Schiffer | |
2021-10-26 | runner: use signal fd to wait for exiting child processes | Matthias Schiffer | |
Will be used to poll for new tasks and signals in the same process. | |||
2021-10-26 | executor: context: remove unneeded Serialize impl on TaskRef/OutputRef | Matthias Schiffer | |
2021-10-26 | Replace ipc-channel with UNIX sockets and manual FD passing | Matthias Schiffer | |
The new implementation is more flexible, as it allows mixed polling with other FD types, and it saves us a whole zoo of dependencies. | |||
2021-10-26 | Switch to 2021 edition | Matthias Schiffer | |
2021-10-26 | runner: hold lock on task state dir while task is running | Matthias Schiffer | |
Do not allow concurrent runs of the same task. | |||
2021-10-26 | runner: do not delete whole task dir, only layer and work dir | Matthias Schiffer | |
We will also store a lockfile in the taskdir that must not be deleted. | |||
2021-10-26 | runner: make lock() function more generic | Matthias Schiffer | |
2021-10-25 | Allow to set the maximum number of jobs on the command line | Matthias Schiffer | |
2021-10-25 | Add lockfile for build state directory | Matthias Schiffer | |
Use flock() to ensure that there are no concurrent instances using the same build state. More fine-gained locking may be implemented in the future. | |||
2021-10-25 | Move main crate to subdirectory | Matthias Schiffer | |
2021-10-25 | Move runner into separate crate | Matthias Schiffer | |
2021-10-24 | Split defintions used by both runner and executor into separate crate | Matthias Schiffer | |
Also get rid of the Runner trait - different runner implementations do not make sense with our current design. |