summaryrefslogtreecommitdiffstats
path: root/crates
AgeCommit message (Collapse)Author
2021-11-06driver: return output from spawn_task() for skipped tasksMatthias Schiffer
Preparation for pinned tasks.
2021-11-06driver: context: get list of rootfs-provided tasks from pins.ymlMatthias Schiffer
2021-11-05driver: context: remove separate rootfs_tasksMatthias Schiffer
The rootfs tasks can now just be added to the regular task map.
2021-11-05driver: introduce task priority fieldMatthias Schiffer
Override the version-based task priority ordering.
2021-11-05driver: add support for specialized tasksMatthias Schiffer
Allow skipping a TaskDef unless it matches specific arg values.
2021-11-05driver: replace regex with nom-based parserMatthias Schiffer
For now, the nom-based parser doesn't really reduce complexity, but we will need a more powerful parsing solution anyways when the task YML is replaced with a specialized language.
2021-11-03driver: recipe: sort recipes by filenameMatthias Schiffer
Make the task order deterministic, in case there are multiple recipes with the same name and version number.
2021-11-03driver: store multiple recipe with the same ID, select highest version numberMatthias Schiffer
We are using the Debian version number scheme for comparision.
2021-11-03driver: context: clean up error message codeMatthias Schiffer
2021-11-03driver: recipe: derive version number from filenameMatthias Schiffer
2021-11-03driver: change task reference string syntax to recipe:task@version/host:targetMatthias Schiffer
2021-11-01runner: use rootfs passed in Task definitionMatthias Schiffer
With this, the rootfs hash is included in the task's input hash, so now the hash covers all significant inputs except for the runner itself.
2021-11-01context: get rootfs hash from pin mapMatthias Schiffer
2021-11-01driver: read pins from YAML fileMatthias Schiffer
2021-11-01runner: allow passing a map of pins with a task submissionMatthias Schiffer
Pins allow to use fixed versions of dependencies. They are stored separately from regular dependency archives.
2021-11-01runner: set CLOEXEC on signalfdMatthias Schiffer
2021-11-01runner: detect file conflicts in dependencies againMatthias Schiffer
The new code will also detect conflicts between the rootfs and individual dependencies.
2021-10-31driver: add to e2fsprogs to rootfs tasksMatthias Schiffer
e2fsprogs is provided by our Debian-based rootfs image. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2021-10-31driver: add toolchain prefix to PATHMatthias Schiffer
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2021-10-31runner: unpack dependencies only onceMatthias 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-31runner: add Stack typeMatthias Schiffer
A Stack guarantees that elements are dropped in reverse push order.
2021-10-30runner: set up /dev in separate directoryMatthias Schiffer
Preparation for removal of a single rootfs.
2021-10-30runner: do not use tmpfs for temporary build directoriesMatthias Schiffer
2021-10-30runner: move lockfile out of state directoryMatthias Schiffer
2021-10-30runner: remove unneeded reference reported by clippyMatthias Schiffer
2021-10-30runner: verify hash when unpacking dependenciesMatthias Schiffer
2021-10-30examples: move recipes to subdirectoryMatthias Schiffer
2021-10-30driver: replace dependency cutoff with stub tasksMatthias 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-30driver: context: change get()/index() argument to TaskRefMatthias Schiffer
With the upcoming changes, we may need to return different TaskDefs depending on the passed arguments.
2021-10-30driver: skip submission of empty tasksMatthias Schiffer
2021-10-30Make TaskOutput input hash optionalMatthias 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-30driver: context: more consistent use specificationMatthias Schiffer
2021-10-29driver: recipe: use common error typesMatthias Schiffer
2021-10-28Pass workdir from driver to runnerMatthias 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-28runner: drop paths::abs() functionMatthias Schiffer
2021-10-28Move handling of current directory of task to driverMatthias Schiffer
2021-10-28Pass target directory for download archives from driver to runnerMatthias Schiffer
2021-10-28Split paths module into driver and runner partsMatthias Schiffer
There are still a few remaining paths that are defined in both driver and runner.
2021-10-28Pass full Output path to runnerMatthias Schiffer
Concatenate TASK_DESTDIR with output path in driver instead of runner to reduce amount of shared logic between driver and runner.
2021-10-28Rename executor to driverMatthias Schiffer
2021-10-28executor: move some state into separate structMatthias Schiffer
2021-10-28executor: use lazy_static for template engineMatthias Schiffer
2021-10-27runner: get rid of spawn argument funnellingMatthias Schiffer
2021-10-27runner: tar: simplify spawn callMatthias 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-27runner: add Steal wrapper, use for socketMatthias Schiffer
A deref wrapper that allows taking out its contents, which is convenient after a fork.
2021-10-26runner: move Checkable trait into separabe moduleMatthias Schiffer
2021-10-26runner: remove another layer of child processesMatthias 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-26runner: move jobserver token handling into task processMatthias 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-26runner: maintain list of task PIDs in contextMatthias Schiffer
2021-10-26runner: add RunnerContext structMatthias Schiffer
Bundle common variables passed to different functions.