cukeq-master --broker «host:port» --report-to http://«host:port» --scm {svn,git}://«url»
cukeq-slave --broker «host:port»
- REST service to trigger runs (payload:
{:features => [file:line, file:line, ...]}
). - Update from SCM.
- Call Cucumber to get «exploded scenarios» (JSON) - (shell out to cucumber with custom formatter +
--dry-run
??). - Create JSON payload
{:run_id => id, :scm_rev => rev, :exploded_scenarios => [...]}
(probably more..) - Put payload on jobs queue.
- Pull step result from result queue.
- POST step result to --report-to URL, or alternatively let reporters register themselves with the Master (webhookish).
- Pull job from job queue.
- If job revision != last revision
- Update/checkout from SCM.
- Restart Cucumber process with updated code files.
- Invoke steps (through wire protocol?)
- Put step result on result queue.
- Webapp to trigger runs / show reports
- Can be triggered from command line (
cukeq-runner file:line file:line
, printshttp://app/runs/«run id»
)