Open
Description
Orb version: 1.0.0
What happened:
When opening a PR with many commits (~400, in my case, due to importing another repo), the orb fails more or less silently with an exit code 141.
The underlying reason for this is that CircleCI runs /bin/bash -eo pipefail
as the default shell, with which the lint script is being invoked.
Then, this command fails because it's using head
, which closes the (reading end of) the pipe before git cherry
returned all the data, which makes the whole pipeline fail.
This only happens for PRs with many commits, as otherwise git cherry
returns before head
closes the pipe.
There's a couple of different options to mitigate the issue:
- The orb could specify the
shell
parameter in it'srun
block and set it to something like/bin/bash
only. This will turn offpipefail
globally. - The script itself could turn off
pipefail
with aset +o pipefail
anywhere within the script, potentially even right before the offending line, and potentially also turn it on again directly afterwards with aset -o pipefail
- The script could use a different command than
head
, one that doesn't close the pipe before all data is read. For example,sed
could be used.
I'm happy to open a PR for any of these, but wanted to inquire as to if there's any preference for the solution!