ci: fail CI jobs when rebasing on master fails (#40161)
ci: fail CI jobs when rebasing on master fails (#40161)

As part of the `setup` CI job (which is a prerequisite for all other CI
jobs), we rebase the current code on master to make sure the PR changes
are compatible with the latest code from master, even if the PR has not
been rebased recently.

When it is not possible to automatically rebase (i.e. when there are
conflicts that need to be resolved manually), the job and subsequently
the entire workflow should fail.

This behavior has been accidentally broken in #39592, so that the job
would succeed even if the rebase operation failed.

This commit fixes it by ensuring the `exec()` helper used in
`rebase-pr.js` will throw an error if the underlying command execution
fails. Previously, the function would always return stdout output as a
string and attach a `code` property indicating the exit code of the
command.

Since the exit code isn't necessary in the `rebase-pr.js` script, this
commit simplifies the `exec()` helper by making it return the stdout
output as a plain string (without extra properties) and re-throw any
errors (unless the `ignoreError` argument is set to `true`).

(Initially reported [here][1] by @JoostK.)

[1]: https://angular-team.slack.com/archives/C042EU9T5/p1608070403128900

PR Close #40161

gnomeontherun/angular,blesh/angular,blesh/angular,mgechev/angular,angular-indonesia/angular,mgechev/angular,brandonroberts/angular,gnomeontherun/angular,angular/angular,JiaLiPassion/angular,alxhub/angular,IdeaBlade/angular,mgechev/angular,manekinekko/angular,alxhub/angular,blesh/angular,gnomeontherun/angular,angular/angular,brandonroberts/angular,brandonroberts/angular,gkalpak/angular,manekinekko/angular,angular-indonesia/angular,manekinekko/angular,angular/angular,gkalpak/angular,gnomeontherun/angular,shairez/angular,ocombe/angular,shairez/angular,IdeaBlade/angular,IdeaBlade/angular,angular-indonesia/angular,shairez/angular,ocombe/angular,brandonroberts/angular,mgechev/angular,brandonroberts/angular,JiaLiPassion/angular,alxhub/angular,gkalpak/angular,shairez/angular,manekinekko/angular,alxhub/angular,manekinekko/angular,angular-indonesia/angular,ocombe/angular,IdeaBlade/angular,manekinekko/angular,JiaLiPassion/angular,shairez/angular,mgechev/angular,ocombe/angular,IdeaBlade/angular,ocombe/angular,JiaLiPassion/angular,alxhub/angular,blesh/angular,blesh/angular,ocombe/angular,gkalpak/angular,brandonroberts/angular,angular/angular