diff options
Diffstat (limited to 'tests/packaging/README.rst')
-rw-r--r-- | tests/packaging/README.rst | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/packaging/README.rst b/tests/packaging/README.rst new file mode 100644 index 0000000..997f666 --- /dev/null +++ b/tests/packaging/README.rst @@ -0,0 +1,87 @@ +.. SPDX-License-Identifier: GPL-3.0-or-later + +Packaging tests +=============== + +Packaging tests used pytest, docker and each directory with subdirectory *.packaging* +is called as *component*. + +Run tests for all components: + +.. code-block:: + + pytest -r fEsxX tests/packaging + +List all components: + +.. code-block:: + + pytest tests/packaging --collect-only + +Run test for specific component (*doc/.packaging*): + +.. code-block:: + + pytest -r fEsxX tests/packaging -k test_collect[debian_10-doc/.packaging] + +.. note:: + + For debug add argument :code:`-s`. + +daemon/.packaging component +--------------------------- + +This is special component that is used by all others components. +For each distribution and version are created two docker images with this component. +One with building dependencies and one for running dependencies. +*Build docker image* is tagged as :code:`kr-packaging-tests-<distro><version>-build` +and *Run docker image* is tagged as :code:`kr-packaging-tests-<distro><version>-run`. + +Others components +----------------- + +All others components are based on *daemon/.packaging* component (docker image). +When component needs new building dependencies, new running dependencies +or some scripts that change build or run phase (see `File structure of each component`_), +new docker image is created. +*Build docker image* is tagged as :code:`kr-packaging-tests-<distro><version>-<component>-build` +and *Run docker image* is tagged as :code:`kr-packaging-tests-<distro><version>-<component>-run`. + +File structure of each component +------------------------------------ + +* <distro> + * <version> + * builddeps - list of build dependencies + * rundeps - list of runtime dependencies + * pre-build.sh - script called before build phase + * post-build.sh - script called after build phase + * pre-run.sh - script called before run phase + * post-run.sh - script called after run phase + * install.sh and build.sh - scripts to rewrite standard commands for building and installing knot-resolvers + * pre-test.sh - script called immediately before testing +* test.config or test.sh - kresd config test or shell script (one of them must exists) + +Commands order to create docker image +------------------------------------- + +For *build docker image*: + +#. run pre-build.sh +#. install packages specified in the file *builddeps* +#. run build.sh +#. run install.sh +#. run post-build.sh + +For *run docker image*: + +#. run pre-run.sh +#. install packages specified in the file *rundeps* +#. run pre-test.sh +#. run test (:code:`kresd -c test.config` or :code:`test.sh`) +#. run post-build.sh + + +.. note:: + + knot-resolver builded in *build docker image* is automatically moved to *run docker image*. |