A feature that we still need to account for is to respond to the stdout, stderr status returned by Rambo, so that if one pipeline depends on another, but the first has failed with status 1, then the run of pipelines should stop
example
Rambo.run("mix", "compile",log: &IO.inspect/1)
{:ok, %Rambo{err: "", out: "", status: 0}}
iex(5)> Rambo.run("mix", "compil0",log: &IO.inspect/1)
{:stderr, "** (Mix) The task \"compil0\" could not be found. Did you mean \"co"}
{:stderr, "mpile\"?\n"}
{:error,
%Rambo{
err: "** (Mix) The task \"compil0\" could not be found. Did you mean \"compile\"?\n",
out: "",
status: 1
}}
Right now in a test ei.json if the 2nd commend is put into the ei.json as a step in a pipeline, and the command fails with status 1, then ex_integrate still proceeds with the rest of the run.
We should just react to all the possible OS or Command errors or feedback from Rambo as one handling (the running of steps) or we could set a different error if ex_integrate errors itself. But any error for the Rambo-originated errors just stops the build.
A feature that we still need to account for is to respond to the stdout, stderr status returned by Rambo, so that if one pipeline depends on another, but the first has failed with status 1, then the run of pipelines should stop
example
Right now in a test ei.json if the 2nd commend is put into the ei.json as a step in a pipeline, and the command fails with status 1, then ex_integrate still proceeds with the rest of the run.
We should just react to all the possible OS or Command errors or feedback from Rambo as one handling (the running of steps) or we could set a different error if ex_integrate errors itself. But any error for the Rambo-originated errors just stops the build.