Travis-CI, an interesting tool/technology I encountered in preparation for Bootcamp
The frontier between a Coder and a Software Engineer is very thin. In fact, those terms are used interchangeably by the people outside the tech industry. Coders are often assimilated to the least trained or inexperienced level of programmers because they do not have the same algorithmic knowledge as Software Engineers, they don’t use those essential tools to a good programming workflow. This is where Andela comes in…
The Andela Bootcamp is the last stage in the journey to becoming an Andelan. During a period of two weeks, prospective Andelans are being supervised, scrutinized and trained. Amongst other assessments, is a technical one involving building a full-stack Javascript (Frontend and Backend) application from scratch using a bunch of tools and technologies like Pivotal Tracker, Travis-CI, Codeclimate, Coveralls and so on.
Before starting the Andela Developer Challenge, I had heard about half of these tools but never used them. I struggled at first but eventually loved them and now that I’ve seen them I can’t unsee them ever. This is the case of a tool called Travis-CI that I consider my “best” friend now.
What is Travis-CI?
Let’s first talk about Continuous Integration.
Continuous Integration (CI) is a development routine that demands Software Engineers integrate code into a shared repository multiple times a day. An automated build verifies each check-in, enabling teams to detect issues early.
By integrating regularly, errors can be quickly detected and easier to locate.
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.”
— Martin Fowler, Chief Scientist, ThoughtWorks
This is where Travis-CI comes in.
Travis CI promotes your development process as a Continuous Integration platform by automatically building and testing modifications in code, offering instant feedback on the change’s achievement.
Travis CI clones your GitHub repository into a brand new virtual environment when running a build, and performs a number of “jobs” to build and test your software.
job — an automated process that clones your repository into a virtual environment and then carries out a series of phases such as compiling your code, running tests, etc. A job fails, if the return code of the
script
phase is non-zero.
If one or more of these “jobs” fail, it is regarded that the build is broken. If none of the tasks fail, the build will be considered passed and Travis CI will be able to deploy your code to a web server or app host.
Other sections of your delivery workflow can also be automated by CI builds. This implies that with Build Stages, you can have “jobs” depending on each other, set up notifications, prepare after-build deployments and many other tasks.
Before Travis-CI, I was just using Netlify to deploy static web apps and I thought that was Continuous Integration/Continuous.
A fun fact about my interactions with Travis-CI during the Andela Bootcamp is that one day that I thought I was done implementing JWT authentication, in my app I hurried and pushed to GitHub and told myself: “Amazing job Thomas, let’s merge it tomorrow”. Then I received an email telling me Travis-CI failed to build, and I realized that my tests were not considering the routes were protected and needed to send a token.
The Andela Bootcamp is so far the best experience I’ve ever had as a Software Engineer cause in a few weeks I’ve grown at an exponential rate because of how challenging it is and how it helped push my limits, and I know the best is yet to come.
I hope you enjoyed reading this post as I enjoyed writing it. If you liked it, share it! Stay tuned!