У меня есть проект на C ++, для которого я хотел бы автоматизировать сборку с использованием Travis CI.
В проекте используется GNU make для сборки.Существует несколько целей сборки, которые не зависят друг от друга, и я хотел бы автоматизировать проверку успешности сборки для каждой цели с помощью Travis CI.Итак, я хотел бы, чтобы несколько сборок Travis запускались для каждого коммита, по одной для каждой цели.
Один из способов, которым я мог бы сделать это:
script:
- make target1
- make target2
- make target3
Однако это потенциально может скрыть проблемы,например, случай, когда сборка target2
завершается успешно только тогда, когда target1
уже построен.
Альтернативой может быть:
script:
- make target1
- make clean
- make target2
- make clean
- make target3
Это выглядит немного уродливо, итакже может занять больше времени, чем необходимо.Ошибки в сборке target3
не могут быть найдены до тех пор, пока не будут успешно построены target1
и target2
.
Лучшим способом может быть использование функции построения матрицы в Travis, чего я не смогсделать.Я попробовал следующее:
matrix:
- script: make target1
- script: make target2
- script: make target3
Но это не работает.Документация Travis для C ++ предполагает, что матрица может чередовать различные среды и компиляторы , и я не могу найти какой-либо способ отдельно запускать разные сценарии.Можно ли это как-то указать с помощью среды?
Возможно ли это?Если да, то как правильно это сделать?
Спасибо.