One thing that Travis CI does not seem handle nativly is merging the base branch (or stable branch) before testing a feature branch. This is a common (and responsible) workflow, let me explain...

Lets say you have the branches master, feature/awesome-stuff, bug/oh-noes where all branches are created off master and get subsequently merged back in (via Pull Request or manually) once they are confirmed complete.

The problem is that the branch your testing may not contain all the changes that have gone into master (because other branches have been merged in since). Even though you should be regulary merging master into your branch we want to be sure that all the CI/automated testing is against the merged result not just against the isolated branch itself.

Some other CI systems do support this natively (like Bamboo) but...

TLDR;

... for Travis CI we can manually add this functionality.

before_script:
- git config --global user.email "travis@mycomany.com"
- git config --global user.name "Travis CI"
- git pull --no-edit origin HEAD