Tech-008: From Empty Desk to Automation: How I Built My First CI/CD Pipeline

Let’s start with the 6-year journey in the Sheffield role as a junior developer at a company known at the time as Dealer Management Services LTD

Under the wing of; Development Manager Gary, Managing Director Simon and his daughter Leanne. I started my real journey into software...

Attending their then offices at Blenheim Reach on Ecclesall Road 5 days a week, the commute was long, but the people and atmosphere was worth it. unsure about the broken lift and the 7 flights of stairs though... "who needs a gym right"

Working alongside amazing people like Rebecca, Perry and Olu I started to grow alongside the business...


Whilst finding my feet at DMS, I trained and undertook my day-to-day role of working with Vb.net and C# solutions

One day I was curious to ask what the empty desk in the corner housing an age-old PC was for?

I was then told “that’s the machine we use to build the software”, He then showed me how the software was built...

Lo and behold the solution files would be pushed to subversion (SVN) I didn’t even know distributed version control was a thing at this point, well yeah, the software would be pushed from his machine to SVN remote. He would then switch desks and use the age-old PC to pull down the code from SVN; compile, package and deploy to an FTP server

I left the office thinking “there must be a better way” ...

That night I researched Continuous Integration/Continuous Delivery (CICD). At the time knowing nothing more than buzzwords.

I didn’t know it then, but this was the start of my devops career…

After a number of days researching and consulting with peers in the .NET discord, I architected a fully automated CICD solution using TeamCity and MS Build

I spent the next weekend creating a PowerPoint presentation to present the solution to the development manager and the managing director


Monday morning comes and it’s time for me to present this solution…

I presented the solution to them, and they were impressed, they had reservations as with any change of process, but the idea got the green light.

The MD purchased a small PC which would be used as the build server, and I went about implementing my plan… I installed and configured TeamCity on the PC connected it to SVN, created Powershell scripts to run MSBuild and create the final MSI to deploy.

This followed a full CICD flow where every check-in to master branch (when master was still a thing) triggered a CI build. This would validate that the software built as expected.

The CD flow would be the release flow, when the software was ready to be released an SVN tag was created using a new semantic version (semver) strategy. This would then trigger a release; build, publish and deploy to FTP.

The end result was one fully automated solution, returning hours of wasted time back to the dev manager


Reflection

I didn’t know it at the time, but that was the start of my DevOps career. All it took was curiosity about an empty desk, and the belief that things could be done better.