Travis CI: Автоматическая доставка кода на удаленный сервер по SSH

В данной статье хотелось бы немного поговорить о тонкостях настройки Travis CI для доставки кода проекта по SSH.

Немного общей информации, как говорит википедия, Travis CI - это распределённый веб-сервис для сборки и тестирования программного обеспечения, использующий GitHub в качестве хостинга исходного кода.

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

Главное, это файл в корне проекта .travis.yml, не в первой в статьях ссылаюсь на офф документацию, но как составить сам файл можно почитать тут, а я остановлюсь только на доставке кода по ssh на удаленный сервер.

Во-первых, вам нужен аккаунт на GitHub.

Затем авторизоваться на travis-ci.org и выбрать проект для использования с сервисом. Остальные настройки там примитивны, так что пойдем дальше.

###Деплой приложения по ssh

В корне проекта, где у вас лежит файл .travis.yml, нужно сгенерировать ssh-ключи, добавить зашфированное значение ключа в travis.yml и залить на удаленный сервер, следующим образом:

После, заливаем изменения и смотрим в консоли Travis CI результаты работы выполнения.

При подключении по ssh могут возникнуть проблемы с SSH Known Hosts, вот тут рассказано, что нужно добавить в файл .travis.yml для решения проблемы.