athena-framework / athena

An ecosystem of reusable, independent components
https://athenaframework.org
MIT License
211 stars 17 forks source link

Scaffold out code coverage reporting implementation #451

Closed Blacksmoke16 closed 1 month ago

Blacksmoke16 commented 1 month ago

Context

Resolves #450.

Changelog


Before merging, remember to add the athena-framework/athena prefix to the PR number in the PR title

Blacksmoke16 commented 1 month ago

This is proving to be not as straightforward as I was initially thinking. There are no pre-built binaries for kcov so I can't just fetch them via curl or install via apt or something. There is a homebrew package, but when used on the macos-latest image it seems broken: https://github.com/athena-framework/athena/actions/runs/11094736512/job/30822531929?pr=451.

The compiled specs are also running on macos-latest for a reason: https://github.com/athena-framework/athena/pull/406, so changing it would essentially be reverting that PR.

Also as I discovered in https://github.com/crystal-lang/crystal/issues/1157#issuecomment-2381352644, the compiled tests would treat the unit tests as having 0% coverage which isn't ideal. So it might be easiest to just have coverage be its own CI job that does both unit and compiled in one batch. This way we only have to build kcov once and good to go? Not a fan of essentially running the specs twice, so I'll keep thinking on this for now...

codecov[bot] commented 1 month ago

Welcome to Codecov :tada:

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

:information_source: You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered :open_umbrella: