Gentoo Build Publisher uses buildah containers to build each machine's binary packages. For each machine, the Jenkins build runs arbitrary commands in the respective container. Usually the user does not need to concern themselves with this implementation detail. But sometimes we need to "open up" the container and do something …
Gentoo binary host, Gentoo Build Publisher version 2 & plugins
Not long ago Gentoo announced binary packages for Gentoo! So even if you're not using Gentoo Build Publisher you can still use Gentoo and take advantage of binary packages. However there is still a place for Gentoo Build Publisher. There are a few things that can be done with GBP …
Gentoo Build Publisher: Pro-Tip: Purging a Machine that is Disabled on Jenkins
This is a short tip and (self) reminder about getting GBP to purge old builds from a machine that is disabled on Jenkins.
A bit of background here. Gentoo Build Publisher has a "purge" feature that will auto-purge old builds from a machine. This process kicks off automatically when after …
Bisecting GBP Builds to Find a Bad Package
Let's say you use Gentoo Build Publisher to continuously build your Gentoo machine's packages, but you haven't updated your actual machine in a while. And finally when you do something's broken but you don't know what broke or when? Well something like that happened to me and I want to …
Rolling Back a Rolling Release with Gentoo Build Publisher
Let's say you've upgraded to tracker-3.4 and it doesn't work. You could mask tracker-3.4, but it depends on tracker-miners-3.4 so you'll have to mask that too. There may be other dependencies that you'd have to mask too. What you'd really rather do is go back in time …
Historical Values in Python
Often in programming we have some "constant" value that we define as a variable in Python. But the only try constant is change.
Consider for example you have a program that needs to process a file with a certain filename. So you might have something like:
FILENAME = "foo.txt" data …
Python Cannot Return Multiple Values
It is often said that Python functions can return multiple values, but this isn't really true. Often the examples given to show Python returning multiple values is something like this:
def foo(): return 1, 3 a, b = foo()
But is that really returning multiple values? No. Well then how come …
Python: Comparing timestamp strings
This article discusses how you should (and shouldn't) compare string representations of timestamps in Python.
Often times when programmers process external data there are timestamps (date and time) and usually this data comes into Python as a string, although some times it could be an integer or float. The international …
Gentoo Build Publisher: Getting failure logs
When one is performing Gentoo builds inside a CI/CD container (inside another container) and a build fails it is sometimes desirable to create a bug report at bugs.gentoo.org. Often the Gentoo developers require that you include the error output and build logs. However getting the logs out …
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 …