#471 extends the assembler test suite to also test xfs and btrfs filesystems in raw and qemu assemblers. However, this change leads to long running times of this suite. The running time of these test consist of 3 main steps: 1) Building the build pipeline 2) Building the stages 3) Running the assembler There are two optimization approaches: 1) Caching OSBuild supports caching, therefore it's possible to cache results of first two steps. 2) Minimizing the operating system tree Assemblers don't care about the image contents. Therefore, it's possible to create just a small tree which would be used to test the assemblers. This should lead to speed up in the step 2 (smaller tree should be built quicker) and in step 3 (big part of assembling is just copying files over to the image). This commit implements the second approach. A new test manifest is now added, which just installs the filesystem package and its dependencies and this tree is then labeled. This solution was chosen, so that the assemblers get something that looks as a proper filesystem tree but also can be built pretty quickly. Before this change, the test_rawfs method with #471 merged ran for 842 seconds. After this change, it ran for 391 seconds. |
||
|---|---|---|
| .github/workflows | ||
| assemblers | ||
| docs | ||
| osbuild | ||
| runners | ||
| samples | ||
| schemas | ||
| schutzbot | ||
| selinux | ||
| sources | ||
| stages | ||
| test | ||
| tools | ||
| .editorconfig | ||
| .gitignore | ||
| .pylintrc | ||
| .travis.yml | ||
| LICENSE | ||
| Makefile | ||
| NEWS.md | ||
| osbuild.spec | ||
| README.md | ||
| requirements.txt | ||
| setup.py | ||
OSBuild
Build-Pipelines for Operating System Artifacts
OSBuild is a pipeline-based build system for operating system artifacts. It defines a universal pipeline description and a build system to execute them, producing artifacts like operating system images, working towards an image build pipeline that is more comprehensible, reproducible, and extendable.
See the osbuild(1) man-page for details on how to run osbuild, the definition
of the pipeline description, and more.
Project
- Website: https://www.osbuild.org
- Bug Tracker: https://github.com/osbuild/osbuild/issues
Requirements
The requirements for this project are:
python >= 3.7systemd-nspawn >= 244
Additionally, the built-in stages require:
bash >= 5.0coreutils >= 8.31curl >= 7.68qemu-img >= 4.2.0rpm >= 4.15tar >= 1.32util-linux >= 235
At build-time, the following software is required:
python-docutils >= 0.13pkg-config >= 0.29
Build
The standard python package system is used. Consult upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:
python setup.py build
python setup.py install --skip-build --root=/
The man-pages require python-docutils and can be built via:
rst2man docs/<input-file>.rst <output-file>
Repository:
- web: https://github.com/osbuild/osbuild
- https:
https://github.com/osbuild/osbuild.git - ssh:
git@github.com:osbuild/osbuild.git
License:
- Apache-2.0
- See LICENSE file for details.