4 авг. 2022 г.
Всем привет! Сегодня хотел бы рассказать об использовании сервиса Codecov. А также интеграции с Github Actions. Сервис предназначен для отслеживания покрытия кода тестами.
Само покрытие считается с помощью специализированных инструментов, в зависимости от стека проекта. К примеру, для PHP проекта это может быть xdebug, pcov либо phpdbg.
В результате получается файл со статистикой покрытия в формате .xml, либо визуальный отчет в формате html. Расчет покрытия тестами для PHP проекта подробно описан в отдельном посте.
Отчет в формате html можно просматривать локально. Для CI/CD можно выгружать отчет на сторонний сервер и просматривать там. Выглядит примерно так: https://antonshell.me/post/php-code-coverage.
Сам процесс загрузки отчетов требует настройки, к тому же нужно поддерживать отдельный сервер. Codecov позволяет визуализировать отчет в формате .xml и упрощает настройку.
1 . Создать аккаунт: https://about.codecov.io/sign-up/. Можно зарегистрироваться с помощью github, gitlab или bitbucket.
2 . В настройках сгенерировать токен и добавить в github secrets CODECOV_TOKEN
.
3 . Добавить в workfow для запуска тестов загрузку результатов в codecov. Пример кода:
- name: Upload report to codecov
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
flags: tests
name: codecov-placeholder-service
fail_ci_if_error: true
verbose: true
4 . Подключить приложение codecov к Github
Пример pull request для настройки codecov: https://github.com/antonshell/placeholder-service/pull/12
Документация codecov: https://docs.codecov.com/docs.
На этом пока все. Спасибо за внимание!