Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (26 sloc) 2.03 KB


Tom Servo

Tom Servo is our testing and deployment tool. His job is top make our lives easy. All deployment scripts, code, and tooling will be handled by him.

Due to the way Codeship works, deployment and testing commands would need to be set in each repo....all 160+ of them. This is not fun in any way, shape, or form, so Tom helps us out with that. Each repo only has a single deployment task, this ensures we never have to modify the Codeship deployment pipeline if we change deployment methods, add/remove steps, etc.


  1. ensure all tests pass (the deploy won't happen if this fails)
  2. edit the following the conventions laid out in Keep A Changelog
  3. bump the version in ../lib/plugin/version.rb
  4. commit ONLY those two items with a message of deploy

This will need to be done to master, not across a fork.

Under The Hood

Deployment Pipeline

cd /tmp/tom_servo
rake deploy:deploy

Task Flow

  1. Build a gem
  2. Push gem to Rubygems
  3. Create Github tag and Release

Making Tom Work For You

Create a new rake task file and namespace if needed or add a new task to one of the current task files. There is no need to modify the root RakeFile as long as you follow the current layout.

When adding tasks please keep in mind the Unix Philosophy, of do one task and do it well. Your code should be abstracted out as much as makes sense. It should also be kept in mind that currently there are nearly 175 plugin repos that use these tasks. Make sure you plan for scale, avoid hardcoding ANYTHING if possible and make sure all paths use Ruby methods to ensure portability.

Additional Information

Build And Release Pipeline

Testing Pipeline