ci: report server and client test coverage to Codecov

Merged
RE
6d ago
+175-6

Context & Requests for Reviewers

Adds code coverage tracking. Not actually on our list of SDLC improvements (#213), but a very important item suggested by @ThisIsMissEm (thanks!).

I chose codecov arbitrarily: happy to switch to another service if someone feels strongly and they are free for us to use.

Note: folks may want to install the codecov plugin in their browser of choice for more nice features in code review! Chrome or Firefox.

Tests

Codecov ran on this PR, but we won't get actual numbers uploaded until this merges. It only compares to the default branch coverage, and it's not enabled there until this PR lands.

Checklist

Only check items that apply to this PR; leave the rest unchecked.

  • If you changed anything user-facing (i.e. user interface or APIs):
    Did you update related docs?

  • If the change is notable (refer to Keep a Changelog conventions):
    Did you update CHANGELOG.md?

  • If you changed db/src/scripts/** and used CREATE TABLE, ADD COLUMN, or ALTER COLUMN:
    Are as many columns marked NOT NULL as possible? If some columns can sometimes be null depending on other columns, are there CHECK constraints capturing those relationships, and are these also reflected using unions in the associated Kysely types?

  • If you added a new signal in server/services/signalsService/signals/**:
    Did you classify every error case as a permanent error (SignalPermanentError, no retry) or a normal error (retryable)? Any case where the signal can't determine a score should be a SignalPermanentError.