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»)