В рамках припадка прокрастинации небольшой обзор CI проекта SPDK
SPDK (Storage Performance Develeopment Kit) -
http://spdk.io/ - это проект Intel'a по созданию библиотек для улучшения поддержки в приложениях высокопроизводительных систем хранения данных (SSD, NVMe, NVMe-oF, вот это всё).
Видео о текущем состоянии проекта
https://www.youtube.com/watch?v=alW6aOUgDKA, из которого можно узнать что OpenStack уже что-то затащил к себе, с этим хорошо бы отдельно разобраться, к чему они смогли прикрутить DPDK(ну к ceph скорее всего), и скоро появиться поддержка DPDK в Kubernetes'e.
Есть также аналогичный проект для сетевого стека DPDK -
https://www.dpdk.org/В общем посматриваю я за этими проектами на предмет что-нибудь заиспользовать у нас, а тут подоспело видео на их канале с заголовком "Software Quality" -
https://www.youtube.com/watch?v=WlL3yCXM0Kw - в видео нет никаких откровений, просто обзор их CI процесса.
https://dqtibwqq6s6ux.cloudfront.net/ - страница со статусом CI
Посмотрев видео и полазив по CI можно узнать что:
- для CI используется Jenkins
- для review используется gerrithub, вообще Gerrit используется часто для сколько нибудь серьезных проектов, например Chromium и Go
- unit test'ы на языке программирования С
- запуск тестов на push
- также на push генерируется документация
- покрытие считается на каждый запуск, сейчас линий 74.8 %
- покрытие меньше 75% считается низким
- инфраструктура тестов на python и bash скриптах
- fuzzing (т.к. язык программирования С), но он не используется автоматически, что конечно большой минус, не нашёл какой fuzzer они используют
- автоматические тесты на производительность, не нашел отчетов
- есть отдельные тесты конфигураций centos7, ubuntu16, ubuntu17
- время сборки 38 минут
- максимальное время на тест сьют - 19 минут
- flame graph для сборки, можно смотреть какой шаг сколько занял по времени и % от всего времени
https://dqtibwqq6s6ux.cloudfront.net/results/autotest-nightly-failing/builds/369/archive/centos7_autotest/timing.svg