So that we can control the version we run without depending on external
actions, and so that we use a consistent version for all linters.
At the same time, unify to running the latest version of reviewdog,
0.21.0, which also involves changing the deprecated `fail_on_error` flag
previously used by prettier action to `fail_level`.
As configured, it's meant to annotate PRs with linter errors (so you
don't have to skim through logs). So it does not make sense for pushes.
In fact, on pushes rubocop action is doing nothing, and prettier action
is failing with:
> reviewdog: this is not PullRequest build.
> sed: couldn't write 80 items to stdout: Broken pipe
actions/checkout@v3 actually creates a merge commit into master, to ensure you're testing the latest as close to master as possible.
That's all well and good, but quite confusing when you see errors in CI that aren't present in the actual PR branch. Hopefully this will be a clue when such confusions arise.
This ensures that all our automated tests are using the same version.
I'm not sure it matters what version Prettier runs on, but thought it should be the same.
This is a down-grade, but it's better to match the version in production. The next step will be to upgrade again for production.
The default is to use the latest version. That's often fine because we
keep our version up-to-date but it may not always be. It's also great if
builds are re-producible.