bevry / dorothy

🧙🏻‍♀️ Bring your dotfile commands and configuration to any shell. Sensible defaults and hundreds of commands preloaded. Supports Bash, Zsh, Fish, Nu, Xonsh, Elvish, Dash, KornShell, macOS, Linux, Windows.
Other
277 stars 21 forks source link

Bug: ci macos test failures are not reported #203

Closed balupton closed 5 months ago

balupton commented 5 months ago

They are still counted as successful, even if failed: https://github.com/bevry/dorothy/actions/runs/7501379305/job/20421913705 https://github.com/bevry/dorothy/actions/runs/7501379305/job/20421913370#step:2:2106 https://github.com/bevry/dorothy/actions/runs/7508334908/job/20443609445#step:3:1486

This is probably due to an old version of bash being used, so the error bubbling and capturing is not being handled by the instance that is actually invoking the tests. The solution to this is to have dorothy (probably the run or test action, or just dorothy itself) reinvoke itself if it detects it is running in an old bash version.

balupton commented 5 months ago

Part of this is that the echo-wait test on fresh macos is noisey even though the coreutils install was optional and quiet. Compatibility checks should be silent underneath such conditions.

balupton commented 5 months ago

If the hypothesis is incorrect that bash v3 is the cause, then the next place to look would be the workflow file.

balupton commented 5 months ago

I've tracked this down to bash v3 not behaving properly. For instance:

something that returns a failure exit status
echo $? # 0
something that returns a failure exit status || echo $? # 1

toggling bash.bash seems to have no effect, so am considering either a || exit $? on bash v3 for the run action, or having dorothy reload itself for bash v4 as soon as we can.

balupton commented 5 months ago

I have fixed this locally by reworking eval_capture. I'll push it up either today or tomorrow.