Page 1 of 1

Creating a CICD setup for home use

Posted: Sun Apr 06, 2025 8:34 am
by rosebaby3892
Often when I am working at home, I wish I had a CICD setup similar to the one at my customers. Developing code without a continues integration platform feels like a big step back. Any self-respecting developer should use CICD, even at home. The only pain is the time needed to setup the applications, which can be significant the first time you do it. In the upcoming posts I will be creating a CICD setup for home use, so that you might go through the steps faster.

I will explicitly not choose any development language or platform, as I will be using it for many different things. I dabble around with many languages ​​and such, so I want my environment to be able to support them all. A small sample of languages ​​and platforms I am supporting using this platform: Python, Django, Java, Angular, Tibco BW, docker.

ontinues Integration platform is built upon
Docker
Nexus
Nginx
OpenSSL
Jenkins
Git
 

The integration lifecycle
Setting up a continued integration is quite a project. A good setup is straight forward from administrating point of view, easy to use as a developer and most important: stable. A continues integration setup is not a static thing, but it changes over time, just as fast as the IT world itself is changing. Therefor we need a stable basis that is a good foundation on which we can build in the future.



The Docker infrastructure
To create this CI platform, we will be using Docker-compose. This allows us to re-create the composition independent of server availability, networks and admin permissions. All we need is a computer with sufficient disk and memory space, and sufficient permissions on that computer to install docker.

 
 
 
 
 


We have to configure our artifact repository . We can create areas for telegram data different packaging systems: maven, pip, docker. Also, we need to consider the types of updates: do we use allow overwrite actions on an existing version, or do we force new version numbers?

 
 
 


Next, the  Jenkins  master will be added to the stack, so that we have a director to control the build jobs.

 
 
 


We will configure the slave to work with our repository by creating a sample project.