January 23, 2021

GitHub Do It All

GitHub Do It All

A little over 5 years a go, I was introduced to a new concept called Continuous Integration and I thought it was the best thing ever. I started to use it in all my project, no matter how small, which sometime led to more time spend setting up the project pipeline than the time it took to finish the project. And when I say all, I mean ALL, including my homework assignment. Now this was all done locally on my computer with Jenkins and it was a simple pull from git, compile and run test. This all changed when GitHub send me my Student Pack, which included GitHub Pro along with a bunch of other goodies and services. One of which was TravisCI and after I read some documentation on it, my mind went wild. I never realized how much you could do with CI, especially when provided as a cloud service with external API. From there, my experience with CI exploded with exponential growth. The pipeline grew from having just compile and test to having trigger from Pull Request, Status check of master branch (at the time, it was still called master branch) and even Continuous Delivery. The pipeline didn't just get bigger, it multiplied. For a single project, I would use TravisCI, CircleCI, and AppVeyor, each one setup with multiple runners for different OS and toolchains versions. Seriously, the README page had multiple lines of the CI build status buttons.

It was really out of control but it was good because I learned a lot and I got it out of my system so now I take it easy with the CI/CD pipeline. I prefer a simple, all in one place, with only features I'd need. So I went back to the basic and do everything locally, on my own personal private cloud. And I have been doing so for the last couple of years, even provided service to some friends and customer who prefer not to use the public cloud CI/CD as a service.

So, a few weeks a go my friends and I "started a company" and we've been working on a project together. When the topic of CI/CD and hosting came up, I said we could use my private cloud. Well the time has come so last night, I was about to setup the API for triggers from GitHub when I noticed GitHub repository have a few new tabs. I was interested so I explored. It started with Projects and ended with Actions. I was quite impressed. It was simple, yet full of features. It had everything I needed and was quite easy to use. I decided to instead use GitHub for the all the project need, from project management to product release. I really like that I could do everything I need from a single place.