Gentoo Build Publisher: Updates/GraphQL

I am still working on a way to make Gentoo Build Publisher easy(er) to install and use. Initially I've wanted to create Docker images for the different components. However the main issue with that is that the Jenkins builds use buildah to build Gentoo machines in containers, and while a Docker container can run buildah it can't do all the things that portage needs to do without running privileged. I actually do run Jenkins in a container, but it's a systemd container (systemd-nspawn). However I don't want to make systemd a requirement because all of the matters of opinion regarding systemd. Stay tuned...

Meanwhile Gentoo Build Publisher has gained some interesting features. Most interesting of them is the addition of a GraphQL interface. The GraphQL interface has feature parity with the REST interface, and even surpasses it. Eventually the REST interface will be removed in favor of GraphQL.

GRP/GraphQL

One of the extra features of the GraphQL interface is that Gentoo Build Publisher can now give you all the (binary) packages included in a particular build. The command line interface now also take advantage of this:

$ gbp status babette
Build: babette/268
Submitted: Sat Oct  2 20:08:28 2021 -0500
Completed: Sat Oct  2 20:11:13 2021 -0500
Published: no
Keep: no

$ gbp packages babette 268
acct-group/mail-0-r1
acct-group/sgx-0
acct-group/ssmtp-0
acct-user/mail-0-r1
...

Currently only the CPV (category/package-version) is displayed but later more information may be used.

Another cool feature of the GraphQL/CLI interfaces is that you can now Gentoo Build Publisher can schedule (Jenkins) builds directly:

$ gbp build babette

The complete GraphQL schema for Gentoo Build Publisher is available here.