Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Aug 17, 2012
Commits on Aug 7, 2012
  1. Ignore offline slaves

    authored
  2. Use RSpec API in RSpec 2 runner. Running specs in this way has a bett…

    authored
    …er performance and allows to avoid collisions on environment cleanup (such as clearing of shared example groups after each spec).
  3. Support RVM

    authored
  4. Add .idea to .gitignore

    authored
Commits on Jul 18, 2012
  1. Lann

    Bump version number for 1.2.2 release

    lann authored
    Change-Id: I67b9e5df02978f02d9815762c28a127cdab30f34
    Reviewed-on: https://gerrit.causes.com/9922
    Reviewed-by: Lann Martin <lann@causes.com>
    Tested-by: Lann Martin <lann@causes.com>
Commits on Jul 13, 2012
  1. Lann

    Return information about example groups on failure

    lann authored
    Example#execution_result[:exception] only has information about the
    example that failed, which does not include the example group for
    shared examples. This appends the calling location to the failure
    message for shared examples.
    
    Reference code: https://github.com/rspec/rspec-core/blob/v2.8.0/
                      lib/rspec/core/formatters/base_text_formatter.rb#L178
    
    Change-Id: I8d3ae6583c1b66ffa3a5e1021e47ce371d69d431
    Reviewed-on: https://gerrit.causes.com/9699
    Reviewed-by: Elliot Block <elliot.block@causes.com>
    Tested-by: Lann Martin <lann@causes.com>
Commits on Jul 4, 2012
  1. Bump version number for 1.2.1 release

    Greg Hurrell authored
    Change-Id: I28929638c3f46374eab22f175d11cab3f418c34e
    Reviewed-on: https://gerrit.causes.com/9317
    Reviewed-by: Aiden Scandella <aiden@causes.com>
    Tested-by: Greg Hurrell <greg@causes.com>
  2. Use Ruby 1.9 compatible require format in worker script

    Greg Hurrell authored
    Use an absolute path when requiring the RSpec formatter, as this will
    work on both Ruby 1.8.7 and Ruby 1.9.x.
    
    Related story:
      http://www.pivotaltracker.com/story/show/32230861 (fixed)
      ("Use Ruby 1.9 compatible require format")
    
    Change-Id: I08920900dc74c7612865ffa00a3c335f59de03e8
    Reviewed-on: https://gerrit.causes.com/9316
    Reviewed-by: Aiden Scandella <aiden@causes.com>
    Reviewed-by: Richard Zschech <richard.zschech@causes.com>
    Tested-by: Greg Hurrell <greg@causes.com>
  3. Fix Ruby 1.9 compatibility issue in options passing

    Greg Hurrell + Noah Silas authored Greg Hurrell committed
    Wrap "spec" in an array so that Ruby 1.9 doesn't freak out when we call
    `#each` on it.
    
    Related story:
      http://www.pivotaltracker.com/story/show/32230263 (fixed)
      ("Fix Ruby 1.9 compatibility issue in options passing")
    
    Change-Id: I90e26c7469e9042913feffdeb897375a9cc30534
    Reviewed-on: https://gerrit.causes.com/9315
    Reviewed-by: Greg Hurrell <greg@causes.com>
    Tested-by: Greg Hurrell <greg@causes.com>
Commits on Jul 3, 2012
  1. Bump version to 1.2

    Greg Hurrell authored
    Change-Id: I60753751d589272a0b8cc2e8b0fac8b0d5a90b0b
    Reviewed-on: https://gerrit.causes.com/9277
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Aiden Scandella <aiden@causes.com>
  2. Teach Buffet to write per-build log files

    Greg Hurrell authored
    All Buffet runs share a single log file and it quickly becomes
    unmanageably large. Furthermore, because multiple Buffet runs can be
    occurring at the same time, the log output can become interleaved in
    confusing ways. Teach Buffet to write a separate log file for each
    build.
    
    Buffet now understands a `-l`/`--log` option which can be used to pass
    in a log file name at runtime. In a Jenkins set-up you would typically
    make this some combination of project name and build number.
    
    If the `-l`/`--log` option isn't passed, the settings file ("buffet.yml"
    by default) will be consulted, and the final fallback will be the
    default of "buffet.log".
    
    Incidentally, did some minor tweaking along the way to enforce
    consistent naming (eg. "log_dir" vs "logdir").
    
    Related story:
      http://www.pivotaltracker.com/story/show/32200237
      ("Teach Buffet to write per-build log files")
    
    Change-Id: Idf831a17a5c0136316b4fd429d41687c2b2481ad
    Reviewed-on: https://gerrit.causes.com/9276
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Aiden Scandella <aiden@causes.com>
  3. Make `Settings#load_file` a private method

    Greg Hurrell authored
    This looks like it should be an internal implementation detail, and
    apart from one (ab)use it wasn't being used outside the class, so this
    commit makes it a private method.
    
    The one external caller was instead taught to use a `.settings_file=`
    accessor method.
    
    Change-Id: I76ea3440e534d5ef3ecdb1a632b5becb9cd3037c
    Reviewed-on: https://gerrit.causes.com/9275
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Aiden Scandella <aiden@causes.com>
Commits on May 9, 2012
  1. Lann

    Allow the worker command to be customized

    lann authored
    This was hard-coded to .buffet/buffet-worker; making it customizable
    will allow for more advanced usage like setting up RVM.
    
    Change-Id: I9a2a174eb1f607ff5e0050d8d2b52a1174dd0952
    Reviewed-on: https://gerrit.causes.com/6386
    Reviewed-by: Greg Hurrell <greg@causes.com>
    Tested-by: Lann Martin <lann@causes.com>
Commits on Apr 5, 2012
  1. Noah Silas

    Bump version number for 1.1.2 release

    noahsilas authored
    Change-Id: I9f4b4aaf6937f28f53dc2f2a25b7268cd3b7158c
    Reviewed-on: https://gerrit.causes.com/4928
    Reviewed-by: Noah Silas <noah@causes.com>
    Tested-by: Noah Silas <noah@causes.com>
  2. Noah Silas

    Fix pending specs under rspec2 runner

    noahsilas authored
    The method signature for example_pending has changed between rspec1 and
    rspec2. The rspec2 formatter wasn't aware of this change, causing specs
    marked as pending to appear to be failing.
    
    Change-Id: Ib591e46b14d86a4fa8a5bd35dbc766675df2ae09
    Reviewed-on: https://gerrit.causes.com/4927
    Reviewed-by: Noah Silas <noah@causes.com>
    Tested-by: Noah Silas <noah@causes.com>
Commits on Mar 30, 2012
  1. Bump version number for 1.1.1 release

    Greg Hurrell authored
    We want to cut a new release including the fixes for working with RSpec
    2.
    
    Change-Id: I05c04b2219c6a700d22ea1f5fa1327fdab3a0c17
    Reviewed-on: https://gerrit.causes.com/4687
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
  2. Use correct gem name in the README

    Greg Hurrell authored
    Change-Id: Ide5a09a47d51b92d8109e3d8dc75d14814930d68
    Reviewed-on: https://gerrit.causes.com/4688
    Reviewed-by: Greg Hurrell <greg@causes.com>
    Tested-by: Greg Hurrell <greg@causes.com>
  3. Fix references to non-existent local `slave_name` variable

    Greg Hurrell authored
    Related story:
      http://www.pivotaltracker.com/story/show/27318939 (fixed)
      ("Fix explosion in RSpec 2 `example_failed` method")
    
    Change-Id: I719feb46a1022da636006a35994187707804d133
    Reviewed-on: https://gerrit.causes.com/4685
    Reviewed-by: Steve Dee <steven.dee@causes.com>
    Tested-by: Greg Hurrell <greg@causes.com>
  4. Fix explosion in RSpec 2 `example_failed` method

    Greg Hurrell authored Steve Dee committed
    This is a long-standing bug in the RSpec 2 formatter, but we've never
    noticed because the only project we've ever tested Buffet with using
    RSpec 2 is Buffet itself, and that had no failing specs.
    
    Related story:
      http://www.pivotaltracker.com/story/show/27318939 (fixed)
      ("Fix explosion in RSpec 2 `example_failed` method")
    
    Change-Id: Iad9d898e9e21a438f0aef4d381882d55132547b2
    Reviewed-on: https://gerrit.causes.com/4681
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Steve Dee <steven.dee@causes.com>
Commits on Jan 11, 2012
  1. Prep for new Buffet release

    Greg Hurrell authored
    We've got our push rights sorted out now, so can cut a new release.
    
    Related story:
      https://www.pivotaltracker.com/story/show/22702023
      ("Cut Buffet release")
    
    Change-Id: I0094421bf42d19a0545f7a5fdca72da4ca443a32
    Reviewed-on: https://gerrit.causes.com/2304
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Robert Goetz <robert.goetz@causes.com>
Commits on Dec 14, 2011
  1. Return non-zero exit status on test failure

    Shane da Silva authored
    Previously, Buffet returned a zero exit status, even if tests failed.
    In order to make it more useful to other scripts which rely on
    information about whether or not the tests passed, return a non-zero
    exit status to indicate that one or more tests failed.
    
    Related Story:
     https://www.pivotaltracker.com/story/show/22323793
    
    Change-Id: Ia517512472fb6e14b3b91f51cadc9f9f047e7a58
    Reviewed-on: https://gerrit.causes.com/1936
    Reviewed-by: Shane da Silva <shane@causes.com>
    Tested-by: Shane da Silva <shane@causes.com>
  2. Remove spec folder from gemspec

    Shane da Silva authored Greg Hurrell committed
    We were including the specs when the gem was installed. This is not
    necessary, so remove them from the gemspec.
    
    Change-Id: I29791add1ee8a4e262fb3bcdfdd6c88f2b2699a4
    Reviewed-on: https://gerrit.causes.com/1935
    Tested-by: Greg Hurrell <greg@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
Commits on Dec 13, 2011
  1. Delete excluded project files on remote

    Shane da Silva authored Greg Hurrell committed
    While we weren't syncing files specified in the filter file, we were
    also not deleting any old copies of these files if they already existed
    on the remote. This could potentially have been bad if the log files
    grew to exceptionally large sizes over time.
    
    Adding the --delete-excluded flag to the rsync call takes care of this
    problem for us.
    
    Change-Id: I7e5026e8c485b65299b24726bcc390c70b1ed375
    Reviewed-on: https://gerrit.causes.com/1854
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
Commits on Dec 12, 2011
  1. Use rsync filter file if one exists

    Shane da Silva authored
    Allow an rsync filter to be specified in buffet.yml, or use one in the
    current directory by default.
    
    This gives us the option of not having to sync folders such as .git or
    log, which can be quite large and change significantly between runs.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22114625
      ("Use rsync filter file if one exists")
    
    Change-Id: Ia8a83ab85bd3e6de56e087331071474ac79393b5
    Reviewed-on: https://gerrit.causes.com/1838
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Shane da Silva <shane@causes.com>
  2. Teach Buffet to take --project option

    Shane da Silva authored
    Allow Buffet to use a specified project name for namespacing its
    resources (and for passing on to the before-buffet-run script to
    ensure the test databases used are unique for each project).
    
    This will allow a user to run multiple tests at once for the same
    project (before, you could only run multiple tests for different
    projects, or more specifically, projects with different project
    names).
    
    Related story:
      http://www.pivotaltracker.com/story/show/22184455
      ("Teach Buffet to take --project option")
    
    Change-Id: I2aca5f033fe8b6044df6a69baaaea82d8ec9e2f2
    Reviewed-on: https://gerrit.causes.com/1841
    Reviewed-by: Greg Hurrell <greg@causes.com>
    Tested-by: Shane da Silva <shane@causes.com>
Commits on Dec 10, 2011
  1. Print statistics for each Buffet slave

    Shane da Silva authored Greg Hurrell committed
    Display statistics related to the amount of time each worker spends
    preparing and subsequently running tests. Also display how many specs
    each worker ran and the pass/fail count for each.
    
    This commit also replaces currently existing uses of time measurement
    with Benchmark instead of Time.now, and cleans up the RSpec formatters
    so that they report the name of the slave they are being run from.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22095601
      ("Print statistics for each Buffet slave")
    
    Change-Id: I1f60a29208070f559d05d0a851afd23c30afea98
    Reviewed-on: https://gerrit.causes.com/1811
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
Commits on Dec 9, 2011
  1. Don't wait for all slaves to run migrations before beginning tests

    Shane da Silva authored Greg Hurrell committed
    One simple optimization to make the overall process faster is to not
    have all slaves wait for all other slaves to run the
    bin/before-buffet-run script before running tests. Some machines are
    faster than others, and it's a waste of time to force them to wait
    around doing nothing.
    
    This ends up improving the architecture a bit, as now the runner only
    deals with starting the Master and displaying results, and the Master
    is in charge of all operations done on a slave.
    
    This change also adds logging to the CommandRunner for diagnostic
    purposes.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22092541
      ("Don't wait for all slaves to run migrations before beginning tests")
    
    Change-Id: If812a868f2c7ba634d74c3fe02f45a9c38c7951a
    Reviewed-on: https://gerrit.causes.com/1788
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
  2. Don't require project name/directory in buffet.yml

    Shane da Silva authored
    Buffet currently determines the location of the project directory it is
    being run from using the buffet.yml file. This shouldn't be a required
    setting, as it can easily determine the name/location of the project
    directory using its current working directory (since that's where it
    gets run from).
    
    This commit removes the need for a project name/location to be
    specified, inferring it from the current working directory.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22060491
      ("Don't require project name/directory in buffet.yml")
    
    Change-Id: Iebf9805a86a5e4f6a3951f753f7f26deb0257d11
    Reviewed-on: https://gerrit.causes.com/1774
    Reviewed-by: Shane da Silva <shane@causes.com>
    Tested-by: Shane da Silva <shane@causes.com>
  3. Add --config switch to `buffet`

    Shane da Silva authored Greg Hurrell committed
    Defaulting to `buffet.yml` makes sense for most projects, and the file
    should be checked into version control, but if you ever want to have a
    config file with local tweaks and overrides, it would be nice to have a
    way of getting Buffet to use it without overriding the official project
    version.
    
    This commit adds support for a custom config file to be specified with
    the --config switch. It also updates the README to describe this new
    capability.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22012835
      ("Add --config switch to `buffet`")
    
    Change-Id: Ide5bbe2637bf090d77aa976dc68a59e0683c9aa0
    Reviewed-on: https://gerrit.causes.com/1770
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
  4. Provide real-time feedback from Buffet command line

    Shane da Silva authored Greg Hurrell committed
    The buffet command line tool currently doesn't provide any feedback
    while you're running tests (except if you tail the logs).
    
    This commit makes Buffet look like running RSpec normally, with a visual
    indication of progress.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22006667
      ("Provide real-time feedback from Buffet command line")
    
    Change-Id: I243dc49ae3e4dc783865557fa0239926fd37e96e
    Reviewed-on: https://gerrit.causes.com/1768
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Greg Hurrell <greg@causes.com>
  5. Remove unnecessary shebang lines

    Shane da Silva authored
    There were some leftover shebang lines that were no longer necessary.
    Since bin/buffet and support/buffet-worker are the only scripts that
    need these lines, remove them and any LOAD_PATH hacks from any other
    files.
    
    Change-Id: If4c8a73fd3e00e0720267cf542d7594ecbb90e76
    Reviewed-on: https://gerrit.causes.com/1765
    Tested-by: Shane da Silva <shane@causes.com>
    Reviewed-by: Shane da Silva <shane@causes.com>
  6. Allow multiple users to run Buffet at the same time

    Shane da Silva authored
    If you try to run Buffet from two different machines for the same
    project, there will be contention over who controls the project folder
    for that project.
    
    This commit fixes this problem by putting the project into a
    subdirectory on a per-user basis. This way there is no overlap,
    even if two different users are testing the same project.
    
    It also passes a parameter to the prepare_script containing the user
    name of the Buffet master. This allows the script to customize its
    preparation based on who is running the test (e.g. using a different
    database name generated from the Buffet user name) in order to
    prevent contention.
    
    Related story:
      http://www.pivotaltracker.com/story/show/22006583
      ("Allow multiple users to run Buffet at the same time")
    
    Change-Id: I09bd791f7ea04fefcab0658799a3683c5d3180c2
    Reviewed-on: https://gerrit.causes.com/1763
    Reviewed-by: Shane da Silva <shane@causes.com>
    Tested-by: Shane da Silva <shane@causes.com>
Something went wrong with that request. Please try again.