Extending CI with GitLab Runners

In the previous two posts, we covered first setting up SSL registration and automated maintenance using a Docker container from LinuxServer.io for Let’s Encrypt’s services, and then followed it up with enabling encrypted HTTPS and Container Repository on a GitLab server. So what’s next on the list for fully-functional Continuous Integration (CI)? Runners.

Configuring GitLab for SSL

As discussed in the previous guide, we used Let’s Encrypt to get legitimate SSL certificates for valid, external domains, and then mapped all of it internally to our own locally-hosted services via DNS. And of course, everything that needs to be maintained periodically is completely automated — a well-oiled machine.

Using Let’s Encrypt for SSL, Internally

If you’re unfamiliar, Let’s Encrypt allows you to register multiple domains and subdomains to get a valid SSL certificate (i.e., valid as in signed by a trusted third party Certificate Authority, CA) for encrypting your services. They also provide a utility for persistently maintaining the registration over time so that your certificates are always valid.

Modular Firmware IP Best Practices

Due to long development cycles (and short schedules!), firmware designers often struggle to generate modular intellecutal property (IP) that is reusable between applications. Modularity relies heavily upon parameterization which can be a difficult challenge in firmware design. Instead of a single IDE with an integrated compiler, parameters are scattered across HDL design files, modeling tools (MATLAB/Octave/Python), vendor tools (Vivado/Quartus/Libero), and simulation tools (QuestaSim/Cadence). The modification of these parameters must be synchronized when reusing IP.