88 lines
2.6 KiB
ReStructuredText
88 lines
2.6 KiB
ReStructuredText
Building Build Tests
|
|
====================
|
|
|
|
{kiwi} provides a collection of integration test images for
|
|
different architectures and distributions. The test descriptions
|
|
cover a number of appliance features that can be built with {kiwi}.
|
|
The test descriptions are stored in a directory structure of the
|
|
following layout: `build-tests/ARCH/DISTRIBUTION/test-image-NAME`.
|
|
To build integration test image(s), the script `build-tests.sh`
|
|
exists.
|
|
|
|
The implementation of `build-tests.sh` calls kiwi's `boxbuild`
|
|
command in container mode, which allows calling the script on
|
|
any host system that allows you to run container instances
|
|
via `podman`.
|
|
|
|
.. warning:: **Architectures**
|
|
|
|
Cross-architecture image building is possible and also supported
|
|
via boxbuild, but the performance impact is big, even in containers
|
|
using qemu-binfmt, and even bigger in full qemu arch emulation.
|
|
This would slow down building the integration tests a lot, and
|
|
therefore, `build-tests.sh` requires the host architecture to
|
|
match the image target architecture.
|
|
|
|
Prior to calling `build-tests.sh`, the following requirements must be met:
|
|
|
|
``Tools``
|
|
|
|
Install the packages providing the following tools:
|
|
|
|
* tree
|
|
* git
|
|
* xmllint
|
|
* podman
|
|
* pip
|
|
|
|
``Source Checkout``
|
|
|
|
Check out the kiwi git repo, which provides the test descriptions
|
|
as well as the `build-tests.sh` script.
|
|
|
|
.. code:: bash
|
|
|
|
$ git clone https://github.com/OSInside/kiwi.git
|
|
|
|
``kiwi-boxed-plugin``
|
|
|
|
Fetch the `kiwi-boxed-plugin` from pip. It provides the boxbuild
|
|
command used by `build-tests.sh`.
|
|
|
|
.. code:: bash
|
|
|
|
$ pip install --upgrade kiwi-boxed-plugin
|
|
|
|
.. warning::
|
|
|
|
Make sure to be able to execute `kiwi-ng`. In case there was no {kiwi}
|
|
installed on your host, you will be notified by the kiwi-boxed-plugin
|
|
installation to update your path to `export PATH:~/.local/bin/kiwi-ng:$PATH`.
|
|
If in doubt about all this, just install kiwi from pip too.
|
|
`pip install --upgrade kiwi`
|
|
|
|
Building a specific integration test can be done as follows:
|
|
|
|
.. code:: bash
|
|
|
|
$ cd kiwi
|
|
$ ./build-tests.sh \
|
|
--test-dir build-tests/x86/tumbleweed/ \
|
|
--test-name test-image-disk
|
|
|
|
Building all integration tests for a specific arch and distribution
|
|
can be done as follows:
|
|
|
|
.. code:: bash
|
|
|
|
$ cd kiwi
|
|
$ ./build-tests.sh \
|
|
--test-dir build-tests/x86/tumbleweed/
|
|
|
|
.. note::
|
|
|
|
Building all integration tests can take some time and depends
|
|
on the number of tests provided as well as on the build power
|
|
of the host system. In general, the tests can also run in
|
|
parallel or be distributed to multiple hosts.
|