To install, clone this repo to /var/lib/openqa/tests/qubesos
Example command for posting new ISO for test:
openqa-client --host https://openqa.qubes-os.org isos post iso=Qubes-DVD-x86_64-20180224.iso DISTRI=qubesos VERSION=4.0 FLAVOR=install-iso ARCH=x86_64 BUILD=20180224 UEFI_DIRECT=1
Example command for starting tests of updates in current-testing:
openqa-client --host https://openqa.qubes-os.org isos post DISTRI=qubesos VERSION=4.0 FLAVOR=update ARCH=x86_64 BUILD=$(date +%Y%m%d%H) UEFI_DIRECT=1
Updates test on R4.1:
openqa-cli api isos -X post VERSION=4.1 BUILD=$(date +%Y%m%d%H) DISTRI=qubesos ARCH=x86_64 FLAVOR=update UPDATE=1 UPDATE_TEMPLATES=fedora-34-xfce GUIVM=1
Example command for starting tests for a template in templates-*-testing:
openqa-client --host https://openqa.qubes-os.org isos post DISTRI=qubesos VERSION=4.0 FLAVOR=templates ARCH=x86_64 BUILD=2020022706-4.0-fedora-31 UPDATE_TEMPLATES='fedora-31 fedora-31-minimal' TEST_TEMPLATES='fedora-31 fedora-31-minimal'
Job templates:
This is now edited via web UI. The templates.json file is git is a backup. Dump the templates: openqa-dump-templates --json | jq -S > templates.json Load the templates: openqa-load-templates templates.json
Variables:
DISTRI- alwaysqubesosVERSION- system version, currently not interpreted (but displayed in UI)FLAVOR-install-isofor installation tests,updatefor updates system testsARCH- alwaysx86_64BUILD- build number, not interpreted (but displayed in UI)UEFI_DIRECT- UEFI boots directly to Xen, no separate bootloader
Variables used in tests:
INSTALL_TEMPLATES- space separated list of template groups (debian,whonix), orall; can include also specific template versions (debian-11) - they they will be installed/reinstalled from online repo after the initial install processUSBVM- USB VM configuration:none(assert that already disabled by default),disable(disable explicitly),sys-usb(default),sys-net(combined with Net VM)KEYBOARD_LAYOUT- install with non-default keyboard layout; currently onlyus-colemakvalue is supportedLOCALE- install with non-default locale; currently onlyen_DK.utf8value is supportedSYSTEM_TESTS- run system tests from those (space separated) modules, each module can be suffixed with ":TIMEOUT" (in seconds); tests are run using nose2VERBOSE_LIBVIRT- increase libvirt log level, including libxl logging; slows down the system and may lead to huge logsREPO_1- repository name to install updates (dom0 and vm) from - in addition to standard reposKEY_1- repository key short fingerprint to use for REPO_1SALT_SYSTEM_TESTS- run salt formula preparing for system tests (mostly install extra packages)UPDATE_TEMPLATES- update listed template packages as a whole (space separated list of templates to update)TEST_TEMPLATES- limit tests to listed templates only (space separated list of templates to test)DEFAULT_TEMPLATE- choose default template - on install jobs it's chosen in initial-setup, on update jobs all qubes that used default template are switched to this oneUPDATE- install updates in dom0 and all templatesQUBES_TEST_EXTRA_INCLUDE,QUBES_TEST_EXTRA_EXCLUDE- passed directly to the test environmentTEST_GUI_INTERACTIVE- simple GUI interactive tests (start application from menu etc)TEST_WINDOWS_GUI_INTERACTIVE- simple GUI interactive tests for Windows with QWT installedWINDOWS_VERSION- create Windows VM of specific version and install QWT inside (argument as for qvm-create-windows-qube)QWT_DOWNLOAD- download specific QWT build (can be URL to iso or rpm file); otherwise qubes-windows-tools dom0 packages is installed from standard repositoriesGUIVM- create GUI VM (sys-gui)GUIVM_VNC- create GUI VM (sys-gui-vnc)GUIVM_GPU- create GUI VM (sys-gui-gpu)KEEP_SCREENLOCKER- do not disable xscreensaver (or whatever screenlocker is there)PARTITIONING- partition layout ('standard', 'xfs', 'btrfs', 'default', 'unencrypted'); on install - set via installer options, later - created manually on sdb, and all templates are migrated thereHEADS- when set to1, the test will handle Heads boot menu. Currently relevant only withBACKEND=generalhw. It's supposed to be sed in "machine" definition.RELEASE_UPGRADE_REPO- relevant for release-upgrade flavor, download scripts from specific URL, like:https://raw.githubusercontent.com/marmarek/qubes-dist-upgrade/<branch-name>WHONIXCHECK- run whonixcheck / systemcheck on all Whonix-related VMs (including templates)WHONIX_INTERACTIVE- run interactive tests on Whonix-related VMs (mostly anon-whonix)KERNEL_VERSION- which kernel flavor should be used - currently supported value is 'latest', which will switch to kernel-latest and kernel-latest-qubes-vm during updatePIPEWIRE- when set to1, VMs are set to use pipewire instead of pulseaudio, including switching native pulseaudio to pipewire-pulse.SUSPEND_MODE- what suspend mode should be used; default isS3, set toS0ixto use S0ix suspendINSTALL_OEM- do fully automated OEM installationINSTALL_OEM_STARTUP- start OEM installation, but still expect interactive prompts during installationHID- for generalhw tests, tell it whetherUSBhid is used (default) orPS2one; in the latter case, sys-usb is not supposed to have input-proxy allowed by default
SecureDrop variables used in tests:
SECUREDROP_INSTALL- when set to1, SecureDrop Workstation is installedSECUREDROP_TEST- when set with a value, SecureDrop tests are run on top of an existing installation
This project is partially funded through NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.
