debian-forge/test
Tom Gundersen 481213a8dd pipeline: pin the sources options in the pipeline object
Make the sources options a static property of the pipeline, in
particular of each stage, rather than being passed in on `run()`.

This more closely matches the intended semantics of sources and
pipeline having similar lifetimes and being fairly coupled together.

The difference between the pipeline and the sources is that the
sources do not contribute to identifying the pipeline (they are not
part of the hash for the pipeline id), and they could be swapped
out without changing the output image (as long as they are valid).
However, a pipeline without A sources object would not be useful,
and typically the pipeline and the sources are generated, passed
around and used together.

This is different from the build environment and the secrets object,
which both are specific to either the host or the caller, unlike
the pipeline which should be universal.

This changes the `load()` function to take a `manifest`, which is
a map containing both the pipeline and the sources.

Note that the semantics of the build-env parameter remains unchanged:
It shares the sources with the rest of the pipeline. We may want to
reconsider this in future commits, as the build-env is specific to
the host, whereas the regular pipeline is not.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-02-19 15:59:11 +01:00
..
pipelines stages/rpm: adapt to use the files source 2020-02-06 19:01:12 +01:00
sources_tests/org.osbuild.files sources: add org.osbuild.files source 2020-02-06 19:01:12 +01:00
stages_tests stages/rpm: adapt to use the files source 2020-02-06 19:01:12 +01:00
testing-rpms improve vagrant test and its documentation 2019-07-25 12:46:53 +02:00
.gitignore introduce testing script 2019-07-09 10:29:48 +02:00
__init__.py osbuild: add description() methods 2019-08-07 10:01:17 +02:00
osbuildtest.py osbuild: introduce sources 2019-12-23 01:12:38 +01:00
README.md improve vagrant test and its documentation 2019-07-25 12:46:53 +02:00
test_assemblers.py assembler/qemu: clarify module usage for grub2 2019-12-24 15:42:24 +01:00
test_boot.py osbuild: introduce sources 2019-12-23 01:12:38 +01:00
test_objectstore.py tests: check duplicate objects are supported 2020-02-06 16:10:35 +01:00
test_osbuild.py pipeline: pin the sources options in the pipeline object 2020-02-19 15:59:11 +01:00
test_sources.py sources: add org.osbuild.files source 2020-02-06 19:01:12 +01:00
test_stageinfo.py Add STAGE_DESC, STAGE_INFO, and STAGE_OPTS to stages 2019-11-13 21:47:03 +01:00
test_stages.py stages/rpm: adapt to use the files source 2020-02-06 19:01:12 +01:00

Setup

To run the tests in vagrant virtual machine, please follow this tutorial: https://developer.fedoraproject.org/tools/vagrant/vagrant-libvirt.html

(run also sudo systemctl start libvirtd)

Using Vagrant

To start a Vagrant box by hand, run vagrant up in this directory. To stop and remove all volumes run vagrant destroy again in this directory.

Troubleshooting

In case you accidentally deleted .vagrant directory, you can use some of these commands in order to get rid of running instance:

$ virsh list # this should display test_default
$ virsh managedsave-remove test_default
$ virsh undefine test_default
# or using vagrant cli tool
$ vagrant global-status
$ vagrant destroy <id>
$ vagrant global-status --prune