Goodbye CodeShip, Hello GitHub Actions
A breakdown of why I've moved all my CI needs to GitHub actions vs while still being a fan of CodeShip.
May 12, 2020
I am going to assume a few things, one - you're a developer or know some code, two - you've tinkered with or have experience with CI pipelines. CodeShip, has been one of my favourite and in my opinion cost effective CI pipeline tools. I have promoted it, I have letters from their team thanking me for support (early adopter), and its been my go to solution for simple CI integration with a simple UI for setting up web hooks for successful builds. However, it has come time for me to say goodbye to CodeShip and move on to GitHub Actions.
I have in the past spoken highly of, dare I say celebrated CodeShip's UI. I found it to be easy and quick to set up new projects and ensure that everything worked well. Their ability to SSH into the build was simple from day one, and I have used that feature extensively in the past. To be truthful, I don't have a problem with their pricing either, I think $49 USD a month is very reasonable to have unlimited builds and projects. However, I think their free plan is a little too tight on builds, but its a business and I digress. CodeShip has helped keep my workflow simple and stress free. So why on earth would I leave them?
Github released Actions in November 2019, and now about six months later I had some time to tinker with it. What I've discovered is the setup I have always wanted. I don't mind using different platforms for different purposes, but there is a fine line between having some tools, and having an overflowing toolbox. Similar to CodeShip and Travis alike all that is needed is a build config file, with that, on pushes and pull requests you can have GitHub run your CI pipeline. The most obvious benefit here is that it runs in the same web location as your code. Instead of having to toggle around between multiple SaaS apps you can explore one to determine the latest builds, commits etc. This also means that your billing is unified, which if you're a freelancer or have your own development shop it just makes life a little nicer. Now these features were enough to sway me to want to use GitHub actions as my primary CI tool, but the pricing was what ultimately sold me on it.
The most notable thing here is that my needs were beyond the free level of CodeShip but not really warranting the cost of the paid plan. I do not currently nor do I foresee a need for unlimited builds. I just don't write enough code for that, nor does my team, nor do my clients need that. GitHub's pricing is that the first 3000 minutes of Actions are free. If a build takes about 3 minutes* then that means you have 1000 builds a month for free, however that is on the organization level so what really matters here is how many product builds could I support for the same price as CodeShip? Let's assume I have 5 products that my business maintains, included in my teams billing I could have 200 builds per month, with about 20 working days per month that's 10 builds a day. At $49 a month I could have a bandwidth of 9125 minutes, so again at 3 minutes per build we're looking at 608 builds a month or about 30 builds a day. If I had a team of 5 developers each pushing committed code daily to each product they would have to push twice a day per product to start costing me $0.008 per minute of build time that exceeds my 3000 allowance.
Since I am running a small business and $490 USD a year is a cost I can cut, it's in my best interest to move to GitHub Actions since I'm already paying less for a product which now offers even more benefits.
* I have apps that range from 1 min to 2 minutes per build and that consists of 174 unit tests with 394 assertions, so 3 minutes is very reasonable.