In part one of this series we covered tools for team communication and collaboration and project planning. In this section we will focus on building and testing the product. Like I said in the part one, these services may be partially skewed to a Ruby on Rails project, but will mostly assume you are building a web app.
Collaborating (or even working on solo) on a project requires the ability to store code in a central location. Source control takes that a step further in allowing you to see progress, identify problems, fix and deploy your code quickly. I am biased toward Git, but SVN and Mercurial are okay options too.
This is my favorite private repository host, allowing both Git and Mercurial projects. It has a very similar interface to GitHub and allows for teams to be made for shared repository management. Teams can be up to 5 members before you have to pay, but teams can have unlimited private and public repositories.
Price: Free (for up to 5 team members) and Paid
This well-known repository hosting system is very well supported and has many integrations to other services. Git is obviously a Git-based host and offers paid private repositories. If you don’t want your project source code being out in the open, you will have to spend money to go with GitHub.
Price: Free and Paid
If you do nothing else from this series, use source control. If you fear the safety of your code base, there are alternatives like GitLab that can be hosted on your own servers. It is also good to note that GitHub and BitBucket both integrate with Slack and HipChat to show when commits have been pushed to the watched repositories.
Magnum CI is a private continuous integration system that allows you to run application tests or deploys for public and private repositories. Magnum CI allows you to keep your builds private, if your code is not open source. Magnum CI runs a handful of different types of projects.
Like Magnum CI, Travis CI can run your project tests. The tests are run publicly, so everyone knows when things break. Just like Magnum CI, you can also have Travis make deployments of your codebase. Travis CI has an expensive paid option for private repositories.
Price: Free (for public repositories) or Paid
Both services tie into Slack and HipChat to alert your team of the current build status. They also have images you can embed on the repository page, application page, or elsewhere to show your build status. If you are doing any testing, a continuous integration runner gives you a second environment to make sure you don’t have any fluke passes. If you aren’t running any tests (Shame on you!) then it is a great way to build and deploy your project from a defined environment.
At this stage, I would generally start with BitBucket and Magnum CI. Unless your team knows that you will be building a fully open source project, keeping it private from the start is good. If you have any familiarity with GitHub and Travis CI, then you should have no problem going with the other tools.
For the last post in this series, I’ll talk about tools for deploy environments and user and bug management.