Regarding B, we use a simple tcl page that can be accessed by curl during the Gitlab CI/CD pipeline, and runs the tests of different packages. This produces log entries that can be parsed afterwards to determine if the tests were successful.
That, the automatic package upgrade I posted here[1], and some other tests (coverage, ...), makes for a nice Gitlab pipeline.
[1] https://openacs.org/forums/message-view?message_id=5442078