LINUX.ORG.RU

Travis CI + Coverity Scan + Qt

 , coverity,


0

1

Добрый вечер, ЛОР.

Прикрутил я к исходникам своего менеджера контактов Travis CI. Работает, компиляет, плашки рисует.

Захотелось мне ещё Coverity Scan прикрутить, тем более, уверяют, что они вместе отлично работают. Почитал официальную доку. Посмотрел, как это сделано в Stellarium. Вроде, почти всё понятно. Почти...

Для начала два вопроса:

1) Там отдельно надо указать build_command_prepend (в моём случае это, видимо, будет qmake) и build_command (ну тут, вроде, make без вариантов). Вопрос: означает ли это, что ВЕСЬ проект должен собираться одной командой? У меня просто в проекте два исполняемых файла - графический и консольный, и сейчас я в своём конфиге для трависа просто собираю их по очереди. Могу, конечно, над ними надстроить ещё верхний файл проекта, это не сложно, но хочу сначала понять, нужно ли это. UPD: надстроил.

2) В доке рекомендуют сначала сделать руками cov-build на своей машине и заслать его к ним на сайт вручную, а потом уже делать полную интеграцию. Собственно, для чего это нужно, и сильно ли необходимо? Нет, если это поможет избежать проблем «всё погибло, а вас предупреждали» - я сделаю, конечно.

★★★★★

Последнее исправление: hobbit (всего исправлений: 1)

1) Раз он с make нормально работает, то он перехватывает запуски компилятора. Последовательный билд нескольких проектов тоже должен работать. Либо по && попробовать объединить, либо скрипт на две строки сделать.

2) Ну вот проверить сборку нескольких проектов и поможет. Там на Travis когда что-то отваливается, хрен отладишь проблему. У меня один файл отказывается обрабатывать на CI, хотя локально всё работает нормально.

xaizek ★★★★★
()

1) Просто объединить через && или ; Но я бы настроил систему сборки чтобы весь проект можно было собрать одной целью, не знаю как это в qmake делается. А так-то на крайний случай есть sh -c «a && b && c»

2) Не слушайте доки, нафиг не нужно ничего локально собирать. Во-первых там всё предельно просто и нет смысла для таких телодвижений. Во-вторых, даже в travis можно разбираться методом тыка, если не будет получаться. Работает он быстро, логи информативные.

anonymous
()
Ответ на: комментарий от anonymous

Но я бы настроил систему сборки чтобы весь проект можно было собрать одной целью, не знаю как это в qmake делается.

Да, это делается через файл .pro с TEMPLATE = subdirs, наверное, так и сделаю...

hobbit ★★★★★
() автор топика
Ответ на: комментарий от xaizek

Всем спасибо за советы! Coverity работает и уже выявил несколько скользких участков (хотя на первый взгляд, вред от них никогда не будет проявляться, я буду это исправлять).

Однако, кроме этих скользкостей, я получил многочисленную ругань вида «Identical code for different branches». Увы, скорее всего, исправить это не получится, поскольку все эти сообщения ссылаются на файлы moc_*.cpp, сгенерированные Qt. Потыкаю настройки, может, там можно отключать сообщения для файлов, подпадающих под определённую маску...

P.S. В Analysis Settings нашёл Project Components - похоже, это оно...

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.