Update: I recently discovered a much smarter way to be doing this. Here it is:

checkout : post : - cd angular && npm install - cd angular && bower install - nohup bash - c "cd angular && grunt server - - force &" test : override : - bundle exec rspec spec - cd angular && grunt karma : unit - cd angular && grunt karma : e2e

Circle CI is an awesome, affordable continuous integration solution. I am currently using it in an Angular + Rails project, scaffolded with Yeoman, following a workflow similar to this.

Here's the problem I ran into: Circle was automatically recognizing and running my rspec tests, but not my angular app's (located at rails_root/angular) karma tests.

Circle.yml

Boom. The npm/bower package management is a little time-consuming, but this runs both my rspec and karma tests.