There are a variety of CI platforms available, such as Travis, GitLab, Jenkins, and countless others. Each platform often serves a common goal, that is, automating deployment and the challenges that come along with it.
Sure, we could deploy our site, run our tests, and continue with other items in our forever increasing build steps. Not only is this a tedious process, but it also gives us many opportunities to make mistakes. Furthermore, it also means that each step has to be documented for every member of the team, the documentation has to be kept up to date and is not exactly scalable across an organization.
For our examples, we'll be using Travis CI, and the first objective that I'd like to tackle is automatically running our unit tests. To do this, we'll need one or more unit tests inside of our project.