Release engineering notes

This document describes several important notes about release engineering of RoFI.

Continuous integration

The projects uses GitHub actions as CI backend. The build process is described by the file .github/workflows/build.yml. The build tries to build every suite and if present, run suite tests.

To save building and pulling build dependencies every time, the individual stages run in Docker container. The images are hosted by ghcr.io and every member of the organization paradise-fi can access it. Note that you need to invoke docker login to get access to ghcr.io. You can read more in GitHub documentation.

The images are defined by the files Dockerfile and Dockerfile.doc. The images are shared across all branches (in order to save space). The images can also be automatically updated via invoking releng/tools/updateDockerImages.

Documentation

This documentation is build under the suite doc. The build process is driven by the suite. Under the hood it uses Doxygen and Spinx.

In order to build per-branch documentation (available under https://paradise-fi.github.io/RoFI/branch/<git_branch_name>) the master branch has an extra build step which checks out all branches pushed to origin and builds them. For security reasons, builds cannot trigger other builds, therefore the master branch is built every night in order to ensure the documentation is up-to-date.