summaryrefslogtreecommitdiffstats
path: root/crates/driver
AgeCommit message (Collapse)Author
2024-04-20Rename directories to match crate namesMatthias Schiffer
2024-04-20Replace recipe separator with ::Matthias Schiffer
Make the single : usable for other syntax in the recipe language.
2024-04-19driver: rename task_setup() to task_preamble(), improve code styleMatthias Schiffer
Less and consistent indentation by turning the strings into consts.
2024-04-13Replace 'inherit' recipe field with 'parent'Matthias Schiffer
All occurrences of 'inherit' in the code are replaced with 'parent' or 'ancestors'.
2024-04-13driver: template: rename eval() to eval_sh(), eval_raw() to eval()Matthias Schiffer
Make eval() the simple version that doesn't perform any escaping.
2024-04-07driver: implement "soft" SIGINT handlingMatthias Schiffer
On the first SIGINT, spawning new tasks is disabled, but running tasks are allowed to finish. The second SIGINT will terminate the build immediately.
2024-04-06driver: add --keep-going flagMatthias Schiffer
2024-04-06driver: do not kill remaining tasks immediately on failureMatthias Schiffer
2024-04-06driver: recipe: add comment regarding file sortingMatthias Schiffer
2024-04-06driver: move RecipeMeta to recipe moduleMatthias Schiffer
2024-04-06driver: recipe: use separate structs for recipe and subrecipe readingMatthias Schiffer
Subrecipes don't have a meta section.
2024-04-06driver: add overrideable recipe name variableMatthias Schiffer
{{name}} defaults to {{basename}}, but can be overridden in the meta section.
2024-04-06driver: refactor CompletionState::task_deps()Matthias Schiffer
2024-04-05driver: recipe: let subrecipes inherit meta from parentMatthias Schiffer
2024-04-05driver: recipe: refactor recipe readingMatthias Schiffer
Preparation for reusing recipe meta for subrecipes.
2024-04-05driver: do not allow overriding basename, provide additional variables to tasksMatthias Schiffer
The variables {{recipename}} and {{recipe}} are now available in tasks. An overrideabe {{name}} (defaulting to {{basename}}) will be added in the future.
2024-04-04driver: resolve: limit number of reported errorsMatthias Schiffer
Reporting all dependency cycles may lead to a large number of errors in some cases, resulting in a long wait just for collecting the error data.
2024-04-04driver: add support for build.<name>.yml subrecipesMatthias Schiffer
2024-04-04driver: recipe: move each recipe into a separate directoryMatthias Schiffer
2024-04-04driver: change task ref syntax to use @ for platform and # for versionMatthias Schiffer
2024-04-04driver: recipe: do not set version from filenameMatthias Schiffer
2024-04-04driver: context: rename pn and pv variables to basename and versionMatthias Schiffer
pn and pv referred to package names and versions, but we don't really have packages at the moment.
2024-04-03driver: parse: replace nom with pegMatthias Schiffer
The PEG-based parser is much more concise and easier to understand than the old combinator solution.
2024-04-03driver: parse: introduce TaskID and TaskArgs structMatthias Schiffer
Make the parser code a bit clearer by not passing around tuples of strs.
2024-04-02Update dependenciesMatthias Schiffer
2023-09-30Fix clippy warningsMatthias Schiffer
2023-09-30Update dependenciesMatthias Schiffer
2021-11-18driver: context: avoid double reference in Index implMatthias Schiffer
Make lifetimes around the get() method less strict to avoid an unnecessary double reference.
2021-11-17driver: pass force_run flag to runnerMatthias Schiffer
2021-11-16driver: pass set of tasks to force-run to driver instanceMatthias Schiffer
2021-11-16driver: parse: add support for + flagMatthias Schiffer
The + flag will be used to force running a task.
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-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-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.