I am working on creating deb/rpm packages for an OSS tool I use. So far, I have been manually testing each deb/rpm in a virtualbox live cd version of that OS but it’s tedious to do that for every release. This is a GUI tool, I basically just need to confirm that the apt install goes correctly and the program can actually launch. There is a systemd service associated with it I’d also like to check the existence/status of. In the future, we may make a flatpak as well.
Are there any tools to automate this process? Or maybe if it can’t test the GUI functionality it can at least install and take a screenshot and I can review the screenshot?
https://Open.qa it is an OpenSUSE tool but it can be used to auto test installs of any OS/software. Their open build service also automates and tests package building
OpenQA is the best answer that I know of for this too! You can even trigger from Gitlabs CI jobs if you are already here.
I think there would be a way to test it with docker, you could find a image that has systemd installed and use something like distrobox to test it with the GUI.
Docker doesn’t like systemd for some reason, podman is the way in this case: https://developers.redhat.com/blog/2019/04/24/how-to-run-systemd-in-a-container#
Podman + distrobox might be the fastest way to get up and running.
If it were me and I was intending to automate this I would probably do the following. Set up each test distro as a VirtualBox image and take a snapshot so I could easily roll back. Then I would write a script for each distro that downloaded the package, installed and launched the app. I would then probably query the window system to make sure the gui showed up, wait a period of time if I had to and take a screenshot.
This can probably all be done as a set of bash scripts.