Publication Details
A Self-Hosted Approach to Automatic CI/CD Using Open-Source Tools on Low-power Devices
Zaklová Kristýna, Ing. (DFIT-ISD)
Lazúr Juraj, Ing. (DIFS)
Hynek Jiří, Ing., Ph.D. (DIFS)
Hruška Tomáš, prof. Ing., CSc. (DIFS)
Docker, CI/CD, Continuous Deployment, Raspberry Pi
The process of software development has widely adopted Continuous Integration and
delivery (CI/CD), offering a comprehensive approach to streamlining the
development process. Both features are commonly offered by third-party services
or cloud-hosted environments, like Amazon AWS or GitHub. While these offerings
are widely available and perfect for large projects and companies, they may not
be suitable for smaller
projects. Factors like the desire to maintain code and deployment locally or cost
considerations can drive the search for alternative solutions. This paper
presents an infrastructure mostly based on open-source services that address
these specific needs. It is suitable for both development and the automatic
deployment of small, locally deployed projects. The solution underwent six months
of testing in a lab environment on a low-power device, namely the Raspberry Pi
4B, which was used to both build new
versions of the software and host it. The solution leverages the GitHub
self-hosted runner to build Docker images from the code directly on the target
device. The images are then pushed into a local Docker Registry. This ensures
that the code can be used on multiple architectures, namely the arm64, and amd64,
by simply pulling an appropriate image that is cross-built thanks to Docker
buildx. The built images can then be automatically updated to deploy or be
deployed on different hardware. The solution is suitable for small projects or
teams with constrained
budgets thanks to the self-hosting of all the components, the low purchase price,
and the power efficiency of low-power devices
like the Raspberry Pi.
@inproceedings{BUT193353,
author="Petr {John} and Kristýna {Zaklová} and Juraj {Lazúr} and Jiří {Hynek} and Tomáš {Hruška}",
title="A Self-Hosted Approach to Automatic CI/CD Using Open-Source Tools on Low-power Devices",
booktitle="2024 IEEE 17th International Scientific Conference on Informatics",
year="2024",
pages="105--112",
publisher="Institute of Electrical and Electronics Engineers",
address="Poprad",
isbn="979-8-3503-8767-4",
url="https://www.fit.vut.cz/research/publication/13274/"
}