You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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's run block and set it to something like /bin/bash only. This will turn off pipefail globally.
The script itself could turn off pipefail with a set +o pipefail anywhere within the script, potentially even right before the offending line, and potentially also turn it on again directly afterwards with a set -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!
The text was updated successfully, but these errors were encountered:
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 beforegit cherry
returned all the data, which makes the whole pipeline fail.This only happens for PRs with many commits, as otherwise
git cherry
returns beforehead
closes the pipe.There's a couple of different options to mitigate the issue:
shell
parameter in it'srun
block and set it to something like/bin/bash
only. This will turn offpipefail
globally.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
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!
The text was updated successfully, but these errors were encountered: