No description
Find a file
Ondřej Budai 4b290dd2a4 test: use a dummy pipeline when testing assemblers
#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.
2020-07-21 10:25:47 +02:00
.github/workflows ci: schedule coverity only for osbuild/osbuild 2020-07-07 08:26:53 +02:00
assemblers assemblers/ostree.commit: set inputhash metadata 2020-06-10 15:08:49 +02:00
docs cli: drop --build-env argument 2020-05-07 19:52:33 +02:00
osbuild osbuild: return if output-directory not specified 2020-07-20 19:17:30 +02:00
runners runners: use platform-python on RHEL 2020-06-19 08:07:07 +02:00
samples stages/noop: fix the schema to allow any props 2020-07-16 19:02:25 +02:00
schemas schema/osbuild1.json: convert to draft4 standard 2020-05-12 22:00:38 +02:00
schutzbot Use script for telegram notification 2020-07-20 16:22:21 +02:00
selinux selinux: Allow unconfined_service_t → osbuild_t 2020-06-10 01:35:05 +02:00
sources sources/files: do not pass floats to --max-time 2020-06-25 21:25:17 +02:00
stages stages/noop: fix the schema to allow any props 2020-07-16 19:02:25 +02:00
test test: use a dummy pipeline when testing assemblers 2020-07-21 10:25:47 +02:00
tools tools/mpp-depsolve: support excluding packages 2020-06-15 13:44:01 +02:00
.editorconfig editorconfig: add one matching current style 2019-12-13 18:15:08 +01:00
.gitignore test: add coverity targets to the Makefile 2020-06-24 10:01:24 +02:00
.pylintrc pylint: disable too-many-arguments rule 2019-07-24 12:55:48 +02:00
.travis.yml ci: move test_boot to github-actions 2020-05-13 22:00:27 +02:00
LICENSE Revert "Fill in the license template" 2019-11-18 12:23:10 +01:00
Makefile test: use a dummy pipeline when testing assemblers 2020-07-21 10:25:47 +02:00
NEWS.md NEWS.md: update for osbuild version 18 2020-06-23 20:02:42 +02:00
osbuild.spec 18 2020-06-23 20:02:42 +02:00
README.md docs: refactor README 2020-03-02 21:34:09 +01:00
requirements.txt osbuild: add meta module for metadata information 2020-05-06 15:42:23 +02:00
setup.py osbuild: use osbuild_cli directly as main entry 2020-07-17 16:30:46 +01:00

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

Requirements

The requirements for this project are:

  • python >= 3.7
  • systemd-nspawn >= 244

Additionally, the built-in stages require:

  • bash >= 5.0
  • coreutils >= 8.31
  • curl >= 7.68
  • qemu-img >= 4.2.0
  • rpm >= 4.15
  • tar >= 1.32
  • util-linux >= 235

At build-time, the following software is required:

  • python-docutils >= 0.13
  • pkg-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:

License:

  • Apache-2.0
  • See LICENSE file for details.