STF M1: add QA tasks
Description and rationale
Debian developers can use Debusine to run various QA tasks (autopkgtest, lintian, piuparts, …) against packages they are preparing. Those tasks can be scheduled through the API or through the web-interface.
This is important because any mistake/regression that can be detected prior to uploading is saving lots of time to the community: once uploaded to a public repository, an issue in a package can potentially affect thousands of users. Developers already have means to run those tasks on their own machines but, except for lintian, many contributors skip them because there’s extensive bootstrapping work involved in setting up those tools, and running them can also be quite resource intensive.
Having a tool that allows any developer to immediately run extensive QA analysis on their ongoing packaging work, without requiring a full setup of the QA toolchain on their own system, is a great way to ensure QA checks are run early and often during development.
Developer perspective
This is about creating building blocks that can be used individually, without a way to orchestrate automatically between them. For example, I can ask debusine to build a package and get the build results; then I can ask debusine to run the package autopkgtest suite, and see its output. I can automate this sequence of events on the client side. In other words, after this first milestone, the server can only execute these tasks individually, and not as an automatic sequence.