Automated Inferno Builds

Now that there are a few Cortex-M ports of Inferno, I want to make sure that they can all be built independently of my development environment. I had already set up the Inferno Test Builds repository on GitHub to test that the ports can be built in fairly clean environments, just to make sure that nothing was relying on files that I hadn't committed to any of the repositories. Another motivation was to provide other people with a way of building and downloading kernels and system images without needing to set up a development environment.

A nicer front end

Although the repository containing the test builds works reasonably well – within the limitations of GitHub Actions, at least – it's not a very user-friendly way of getting at the binary files you need for any given device. As a result, I created the Inferno Ports repository to both build ports and publish information about them, using a set of workflows that run on GitHub-hosted runners. The results can be found on the overview page that the workflows produce.

The process isn't ideal: it tries to build all the ports and only creates a new overview page if all the builds complete successfully. Really, it should use completely separate workflows for the builds and the publication process, only doing the work needed to track changes to current ports. The problem is finding a way to describe the process to the GitHub Actions system – assuming that it's possible to support that use case.

At yshurik's request, I added the Raspberry Pi port to the collection of builds, and I may try to re-enable Caerwyn's Pi Pico port when I get a chance. I'm not sure about the other ports I've created.


David Boddie
13 December 2023