One of the best parts of spinning up a new programming team is setting the processes up from scratch. That means fixing your past failures and, more importantly, playing with the shiny new toys.
The first thing we fixed at Dwellers, was setting up a continuous integration service on the very first day. I’ve never worked with an environment that makes sure all my tests are passing and pushes things into staging before. I tried a few years ago, but it was a bitch to set up and never worked.
Sure I run tests all the time, and have no problem deploying to a server – especially Heroku where you just do a
git push heroku. But it’s tedious and the less things you have to think about, the more brain cycles are free to solve actual problems.
The more I look, the more I’m impressed by everything CircleCI does. It made pushing code even more fun.
When you push to your branch it runs tests on that branch alone and tells you how you did. There’s also a history of the past few pushes in the dashboard so you can see what your track record’s like.
Click on a specific push, will show you the run steps in real time. It’s really fun to watch. But I should get over the novelty and stop yak shaving all the time.
If all the tests pass and you pushed to
master, the code is automatically deployed to staging so the business guys can have fun clicking around. And seeing your code live, even just on a server nobody outside the office will see, only a few minutes after pushing to Github, is super rewarding.
CircleCI can also notify you about the tests in a number of ways like sending you an email or being chatty on HipChat/IRC … but that’s not very interesting.
My favourite feature is that Github seems to support CircleCI. Somehow. I haven’t installed any plugins or anything, just connected my Github account to CircleCI, which is how you login and get access to any project you have access to on Github, and something new appeared.
Those little icons in the branches list. That’s new. I don’t know how it got there, but it’s dynamically updated with the status of every particular branch from CircleCI.
If you’re still waiting for TravisCI to support private repos, give CircleCI a shot. It’s really awesome.