A framework for modelling build pipelines in YAML
Project description
What is BuildStream?
BuildStream is an Open Source tool for building/integrating software stacks. It takes inspiration, lessons and use-cases from various projects including OBS, Reproducible Builds, Yocto, Baserock, Buildroot, Aboriginal, GNOME Continuous, JHBuild, Flatpak Builder and Android repo.
BuildStream supports multiple build-systems (e.g. autotools, cmake, cpan, distutils, make, meson, qmake), and can create outputs in a range of formats (e.g. debian packages, flatpak runtimes, sysroots, system images) for multiple platforms and chipsets.
Why should I use BuildStream?
BuildStream offers the following advantages:
Declarative build instructions/definitions
BuildStream provides a flexible and extensible framework for the modelling of software build pipelines in a declarative YAML format, which allows you to manipulate filesystem data in a controlled, reproducible sandboxed environment.
Support for developer and integrator workflows
BuildStream provides traceability and reproducibility for integrators handling stacks of hundreds/thousands of components, as well as workspace features and shortcuts to minimise cycle-time for developers.
Fast and predictable
BuildStream can cache previous builds and track changes to source file content and build/config commands. BuildStream only rebuilds the things that have changed.
Extensible
You can extend BuildStream to support your favourite build-system.
Bootstrap toolchains and bootable systems
BuildStream can create full systems and complete toolchains from scratch, for a range of ISAs including x86_32, x86_64, ARMv7, ARMv8, MIPS.
How do I use BuildStream?
Please refer to the documentation for information about installing BuildStream, and about the BuildStream YAML format and plugin options.
How does BuildStream work?
BuildStream operates on a set of YAML files (.bst files), as follows:
Loads the YAML files which describe the target(s) and all dependencies.
Evaluates the version information and build instructions to calculate a build graph for the target(s) and all dependencies and unique cache-keys for each element.
Retrieves previously built elements (artifacts) from a local/remote cache, or builds the elements in a sandboxed environment using the instructions declared in the .bst files.
Transforms/configures and/or deploys the resulting target(s) based on the instructions declared in the .bst files.
How can I get started?
To get started, first install BuildStream by following the installation guide and then follow our tutorial in the user guide.
We also recommend exploring some existing BuildStream projects:
If you have any questions please ask on our #buildstream channel in irc.gnome.org
Availability in distros
BuildStream:
BuildStream external plugins (bst-external)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for BuildStream-1.95.5.dev0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bac75e0bd5fd6ba352da937f3a21bdd2c3362022748c4369f75b400949473fa |
|
MD5 | 6b5a95c23483faa30ee7a95837ec47a1 |
|
BLAKE2b-256 | 888a2f26865b6816b63bc80f5127be92d4ea27698ae208f8d730b3a4feccab9f |
Hashes for BuildStream-1.95.5.dev0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f02e3b81126ce8ef0da0ffccbd6b916c251515a85489c7a0ae45c93ce7d7e5b |
|
MD5 | 550365506b97b09ba62d70e2ceca2415 |
|
BLAKE2b-256 | 430ebdfe51895e91695f93db61ae1e2efe93bc57ea62a5c3e8c0083daaf67820 |
Hashes for BuildStream-1.95.5.dev0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78c6c4fdfa4e10ae061691c4b6eaaf976c6561a185a149ee59a6b6c73787ca3f |
|
MD5 | c106233b3b9b84947fc8e238e768914b |
|
BLAKE2b-256 | 261e100aa403e6e54cde9ecd541bf10bdf2e3facf502eb4153459d4bf3e0adc5 |
Hashes for BuildStream-1.95.5.dev0-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4856d7eea94a1803ccce0def3e9787c817b29d19fb3ed55d2cd0ac0b4f18d6b1 |
|
MD5 | 20d9d7560825f23d39e607d736d8ec2b |
|
BLAKE2b-256 | 8b34c81ee03fd622cc4179fb383013009bcaf42a3a9030278cf71ffa6fbba379 |