144 Commits

Author SHA1 Message Date
Thibault Jouan
658e333420 Enable dry run mode when PRODUCER_DRYRUN is set 2015-04-06 13:53:29 +00:00
Thibault Jouan
2b0e62be26 Enable debug mode when PRODUCER_DEBUG is set 2015-04-06 13:49:44 +00:00
Thibault Jouan
bd754f2bf6 Enable verbose mode when PRODUCER_VERBOSE is set 2015-04-06 13:45:57 +00:00
Thibault Jouan
2363bfb62a Implement `set' task keyword 2015-04-06 12:39:09 +00:00
Thibault Jouan
feef44b255 Refactor recipe execution in cucumber features
Mock home directory in `run_recipe' helper, avoid the need to use
@mocked_home_directory in many scenarios.
2015-04-06 08:47:46 +00:00
Thibault Jouan
a3e75b0ac6 Refactor cucumber tags and steps
Use @mocked_home_directory provided by aruba and remove our custom
@fake_home tag.
2015-04-06 08:46:50 +00:00
Thibault Jouan
85b5ba4c6d Stop excluding sshd related features on CI 2015-04-05 12:25:12 +00:00
Thibault Jouan
f3970c1fc6 Update cucumber-sshd test dependency to ~> 1.0 2015-04-05 05:39:49 +00:00
Thibault Jouan
9a8ab69c8c Extract cucumber env and steps to ease code reuse
producer extensions like producer-rails must not reimplement all the
testing infrastructure, this extraction allows to setup everything with
just one require call in cucumber env:

    require 'producer/core/testing/cucumber'
2015-04-05 02:14:00 +00:00
Thibault Jouan
d481398980 Fix typo in features and specs (exists -> exist) 2015-04-04 23:14:05 +00:00
Thibault Jouan
8efb548474 Remove debug code in recipe steps (from aa4845fd) 2015-04-04 20:20:54 +00:00
Thibault Jouan
dbe7fea204 Fix backtrace filtering for producer own code
Using /producer-\w+ as pattern is incorrect, we have no guarantee that
the canonical repository or gem name will be included in the install
path. Just use /producer pattern to match lib files or executables.
2015-04-04 20:15:22 +00:00
Thibault Jouan
aa4845fdae Refactor cucumber recipe steps 2015-04-04 05:25:01 +00:00
Thibault Jouan
b6cbd1b6f2 Fix coding standards 2015-04-04 05:25:01 +00:00
Thibault Jouan
433f830c54 Implement recipe arguments
CLI will stop arguments processing after the special `--' argument,
the rest will be saved in the env and accessible through a new task
keyword: `recipe_argv'.
2015-04-04 05:25:01 +00:00
Thibault Jouan
1ccd95b80f Fix error formatting in debug mode
Backtrace filtering was only disabled for exception cause, this change
ensure no backtrace filtering at all in debug mode.

* Prevent main exception filtering when debug mode is enabled;
* Test when exception cause must be displayed;
* Test how exception cause must be displayed.
2015-04-03 23:18:28 +00:00
Thibault Jouan
b93e5717ce Filter ruby lib directory from error backtrace 2015-04-03 22:36:23 +00:00
Thibault Jouan
0da47a0acb Fix backtrace filtering for producer 2015-04-03 22:35:44 +00:00
Thibault Jouan
dc561de047 Fix backtrace filtering for net-ssh
Improve our filter pattern so it works for this kind of error:

SocketError: getaddrinfo: hostname nor servname provided, or not known
  /usr/local/lib/ruby/2.2/timeout.rb:74:in `timeout'
  /usr/local/lib/ruby/2.2/timeout.rb:125:in `timeout'
  /home/tj/.gem/ruby/22/gems/net-ssh-2.9.2/lib/net/ssh.rb:207:in `new'
  /home/tj/.gem/ruby/22/gems/net-ssh-2.9.2/lib/net/ssh.rb:207:in `start'
2015-04-03 22:34:46 +00:00
Thibault Jouan
b1879ea9f9 Test net-ssh error filtering 2015-04-03 20:27:28 +00:00
Thibault Jouan
ed01bbed4e Merge cucumber env setup in a unique file 2015-04-03 16:12:47 +00:00
Thibault Jouan
a9c8485d09 Update cucumber dependency
In the process, we remove our cucumber docstrings monkey patch. It
does not work anymore and it was not a so good idea.
2015-04-03 15:54:11 +00:00
Thibault Jouan
5d9778f33f Fix coding standards 2015-03-05 07:24:10 +00:00
Thibault Jouan
2f34414bf8 Fix aruba 0.6.2 API usage
Use `check_file_content` instead of `check_exact_file_content` which
has been deprecated.
2015-02-03 04:02:10 +00:00
Thibault Jouan
cacfa7e342 Move registry cucumber feature in recipe directory 2014-11-18 17:40:42 +00:00
Thibault Jouan
3b413a242f Implement `set?' task keyword:
When called from a task, will return true when given key exists and
false when key does not exist.
2014-11-18 16:48:11 +00:00
Thibault Jouan
1465b98f18 Accept a default value for `get' registry keyword 2014-11-18 15:56:25 +00:00
Thibault Jouan
2d3975d47f Unflatten features directory tree 2014-11-18 11:58:23 +00:00
Thibault Jouan
e22d0039e1 Implement CLI debug option 2014-10-12 23:45:01 +00:00
Thibault Jouan
25d03d4322 Improve CLI error reporting 2014-10-12 18:11:37 +00:00
Thibault Jouan
f6237bfc0c Implement `yaml_eq' condition keyword 2014-10-11 13:46:18 +00:00
Thibault Jouan
0ba12bfb90 Implement `yaml_write' action 2014-10-11 00:47:16 +00:00
Thibault Jouan
9780cdf220 Support YAML templates 2014-10-10 23:58:20 +00:00
Thibault Jouan
82879b56b4 Extract Task#template code in Template class 2014-10-10 16:36:06 +00:00
Thibault Jouan
c4006416e4 Support `file_write' status attributes 2014-10-08 22:36:32 +00:00
Thibault Jouan
a84b34b7ca Support `mkdir' status attributes 2014-10-08 22:36:27 +00:00
Thibault Jouan
9bc5c2aeec Implement `composed_macro' recipe keyword 2014-10-02 03:20:12 +00:00
Thibault Jouan
6cd294a0b8 Implement `template' task keyword 2014-09-28 14:33:35 +00:00
Thibault Jouan
2543fdeb00 Implement `file_match' condition keyword 2014-09-27 12:14:16 +00:00
Thibault Jouan
7a7c8379ff Improve CLI usage:
* Rewrite arguments parsing with OptionParser;
* Allow processing of multiple recipes.
2014-09-26 19:06:10 +00:00
Thibault Jouan
85ee79ab88 Indent logging output on nested tasks 2014-09-26 10:26:00 +00:00
Thibault Jouan
2d4e04b2e5 Fail when accessing registry with invalid key 2014-09-26 00:24:19 +00:00
Thibault Jouan
bd66ec25e4 Allow `mkdir' action to work recursively 2014-09-25 21:28:12 +00:00
Thibault Jouan
b11d0b6950 Allow `target' recipe keyword to return target 2014-09-25 14:57:27 +00:00
Thibault Jouan
42e29cc1fe Implement `target' condition keyword 2014-09-25 01:34:44 +00:00
Thibault Jouan
a7b2c4abea Implement `target' recipe keyword 2014-09-25 01:24:25 +00:00
Thibault Jouan
3dc414f188 Declare macro in tasks 2014-09-25 00:27:46 +00:00
Thibault Jouan
77582ef843 Allow access to registry from conditions 2014-09-25 00:01:03 +00:00
Thibault Jouan
638f8320bc Implement nested tasks 2014-09-24 22:26:29 +00:00
Thibault Jouan
52ecf4899b Implement Recipe{.,#}compose_macro 2014-09-22 22:04:46 +00:00