Continuous Integration with Travis
Those who are unaware they are walking in darkness will never seek the light.- Bruce Lee
Hmnnn deep stuff! and true. I would have to jump in and say that, more important than any form of intelligence or skill is the concept of experienced guidance (in this case trained automated guidance). This is an essential part of any journey in life generally. And to narrow this down to the software development field, it is essential, paramount even, to have a pair of eyes that simulates the person of a peer agile developer. A system that is dedicated to reviewing your work and report to you actionable feedback. In addition, send coverage reports if prompted by script instruction.
Surely, you would agree with me that it is a nice and warm feeling to have a partner in any development process, and what better partner could you have than an automated system designed for (almost) absolute perfection. The process of having a pair of eyes with you during software development projects is known as Continuous Integration.
Plethora of options
The question now seems to be, upon accepting Continuous Integration, selecting the right one. Well the answer to that is, there is hardly a clear-cut distinction between the continuous integration systems available. This is owed to the fact that most Continuous Integration systems are built having similar functionality with mild implementation differences and a major UI drift.
The most popular CI systems known to me are Travis CI and Jenkins CI, and they are both great systems. But my favorite pick is Travis CI.
Well, Travis is just great. Packed with a user-friendly interface and easy-to-use functionality it packs a mean punch in the continuous integration system battle..
Travis syncs in with a particular repository of your choice on your git hosting platform usually Github. It monitors commits on Github and automatically runs test specified in its .travis.yml file essentially giving you update on every step taken for your app to execute: testing, starting the app, publishing, reporting and so on.
Travis also has the feature of piping your test reports to a code coverage platform like coveralls or codeclimate. It does this by sending a report file; lcov.info, from your coverage folder up to the coverage reporting platform.
I must also say that having badges is a nice touch. It gives confidence to the developer and possible clients, seeing as it sends a message that the developer is really interested in quality output. This is obviously an added plus to your resume by proxy.
More often than not, incorporating a Continuous Integration tool alone does nothing about code coverage reporting, so it is generally recommended to have a code coverage account with one of the popular reporting platforms like codeclimate or coveralls. These platforms return a percentage for all files in your project based on the number of statements, functions, and branches tested therein
This is another nice way forward. Why not go ahead an make your app known and at the same time contribute to the global software development community. You could publish your code on NPM (node package manager) and anyone could simply go in and install your app as a dependency or dev dependency and make use of it.
Well, thanks for reading this short post of mine on Continuous integration with TravisCI. Until next time, I’ve been Nweze Victor C, your friendly neighborhood techie.