BuildStream Documentation¶
About BuildStream¶
BuildStream is a flexible and extensible framework for the modelling of build pipelines in a declarative YAML format, written in python.
These pipelines are composed of abstract elements which perform mutations on on filesystem data as input and output, and are related to eachother by their dependencies.
Basic element types for importing SDKs in the form of tarballs or ostree checkouts, building software components and exporting SDKs or deploying bootable filesystem images will be included in BuildStream, but it is expected that projects forge their own custom elements for doing more elaborate things such as deploying software in special ways.
Using BuildStream¶
Here are some resources to help understand the BuildStream format and also to get off the ground installing it on a new host.
- Installing BuildStream
- Invoking BuildStream
- Bash Completions
- User Configuration
- Project Configuration
- The BuildStream Format
- Public Data
- Artifact Caches
Elements¶
General Elements¶
Build Elements¶
manual- Manual Build Elementautotools- Autotools Build Elementcmake- CMake Build Elementqmake- QMake Build Elementdistutils- Python Distutils Build Elementmakemaker- Perl MakeMaker Build Elementmodulebuild- Perl Module::Build Build Elementmeson- Meson Build Elementdpkg_build- Dpkg-based build elementpip- Pip build element
Sources¶
The following source types are provided with BuildStream:
Core Framework¶
The core public APIs are of interest to anyone who wishes to
implement custom Element or
Source plugins.
Plugin- Base Class for all pluginsSource- Base Source ClassElement- Base Element ClassBuildElement- Build Element ClassScriptElement- Script Element ClassContext- Invocation ContextProject- Loaded ProjectSandbox- Build SandboxUtilities- Utilities for Plugins