Its it worth learning how to setup a CI/CD pipeline?

After completing the programming and looking for job would I be better off creating better projects or setting up my own CI/CD pipeline? thoughts?

You may as well learn to make use of CI/CD, because you should be able to do it all pretty easily. All the main CI services have a free tier, and they all work by allowing you to specify which GH repos you want to keep an eye on. Then when you push changes, any tests etc will run. GH itself now makes this very easy, allowing you to set up pipelines. The key thing is that you need to learn how to test. Once you understand how to set that up, the services are literally just [automatically] running build and test scripts on push/merge and registering whether the build/tests pass or fail. For CI, it definitely shouldn’t take long at all to learn: the services are simple.

2 Likes

In that case you would recommend using something like Travis for a public repo instead of learning the details of setting up Jenkins or something similar?

Yeah, I think I would go down that road. Basically, your aim is to put something in place that can give you confidence: that’s what these services buy you. And Travis (or Semaphore or Circle etc) let you put that in place really easily.

From there you kinda expand out, and that’s where Jenkins et al come in. It is worth knowing these things, but it’s probably going to complicate things in the beginning: for learning purposes, is it worthwhile to look at it without a pile of code in place that you want to automate deployment of? Possibly not, but I don’t know 100%. Automation tools for deployment are designed to mitigate pain within organisations who depend on CD, so it’s kinda difficult in the abstract to take that and apply it to your small learning projects. I definitely think a good bet is to do work on GitHub, add tests, add a service like Travis, see how that goes. Maybe add a code coverage service, like Coveralls. Maybe a documentation coverage service like Inch? You can put these things in place for your projects really easily and get a feel for them.

4 Likes

Thanks Dan,

That was a really helpful answer! I’m familiar with testing so sounds like it shouldn’t be too difficult to try out a few of these tools. It certainly can’t hurt to try them out a bit anyway.

1 Like

It seems like you got the answer your looking for by @DanCouper, I just wanted to add that I was able able to get running with travis-ci in a week-end of commiting a bunch of changes to my config file to get thins “working”

Getting automation going for your own side-projects probably wont make much impact to your time-savings, since your the only one working. But knowledge of getting a CI/CD pipeline down for work is an amazing skill to have that will not only save you time, but your company and co-workers time. :smiley:

Good luck with your automation journey :smiley:

1 Like