Подтвердить что ты не робот

Попытка понять, что делает Тревис CI и когда он должен использоваться

Я очень новичок в Git, и я планирую внести свой вклад в какой-то проект с открытым исходным кодом на GitHub после обнаружения небольшой ошибки в нем. После разблокировки и исправления ошибки я запросил запрос на растяжение, и я заметил, что это видно:

Не удалось - Ошибка сборки CSI Travis

Взглянув на детали, я обнаружил, что это было вызвано Could not find .travis.yml, что имело смысл, поскольку я не подписал контракт с Travis Cl и добавил .travis.yml в репозиторий.

Это мой первый раз услышанный о Тревисе и о том, что называется непрерывной интеграцией. И это звучит довольно круто, поэтому, чтобы узнать больше об этом, я просмотрел его в Википедии.

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

Мое настоящее понимание Трэвиса CI заключается в том, что то, что он делает, автоматически нажимает проект на git commit -am "..", и я не совсем понимаю его часть.

  • построив проект и запустив тесты, какие тесты он будет запускать? И как это будет "строить" проект? (например, скомпилировать его в двоичный файл?)

  • В нем говорится, что "Это включает в себя фиксацию для всех ветвей" - но что, если я не хочу связываться со всеми ветвями?

  • Хорошо, если я вообще не использую Travis Cl? При каких обстоятельствах лучше всего использовать его (или его нужно использовать)?

4b9b3361

Ответ 1

Самый простой способ объяснить Travis CI заключается в том, что он запускает ваши программные тесты каждый раз, когда вы передаете GitHub (это можно настроить разными способами, и вы всегда можете отключить сборку на некоторых ветвях). Дело в том, что вы часто можете обнаружить очень быстро, если ваша фиксация что-то сломала и исправить, прежде чем она станет проблемой. Я бы рекомендовал запустить Travis CI на каждом репо GitHub, в котором у вас есть модульные тесты, и использует язык программирования, поддерживаемый Travis CI. Поскольку настройка Travis CI очень проста, я обычно не вижу достаточной причины не использовать ее, если вам все равно, если вы проходите тесты в своей программе. Не стесняйтесь оставлять комментарий, если у вас есть еще вопросы. Вы можете узнать больше о Travis CI здесь.

Ответ 2

Как вы уже узнали, что такое Travis-CI, я бы прямо указал на ваши вопросы.

Создавая проект и запуская тесты, какие тесты он будет запускать? И как это будет "строить" проект? (например, скомпилировать его в двоичный?)

В .travis.yml файле вы указываете свою ОС, язык программирования, свою ветвь репо, имя файла проекта и другие сведения. Прочитав этот файл, Travis-CI будет использовать конкретные компиляторы, установленные на их сервере для компиляции нашего кода. Вероятно, у них будет тот же механизм, что и у Гитуба. Впервые они могут вытащить код [если мы указали конкретные ветки, они могут вытащить код только из этих ветвей). Кроме того, мы прошли аутентификацию, чтобы использовать нашу учетную запись с Travis-CI, всякий раз, когда мы совершаем фиксацию, должно быть какое-то уведомление должно быть отправлено на сервер Travis-CI, поэтому оно будет распознано как коммит, и оно начнет компиляцию.


В нем говорится, что "Это включает в себя фиксацию для всех ветвей" - но что, если я не хочу связываться со всеми ветвями?

Можно указать разные ветки или ветвь master. И он должен компилировать только определенные ветки, указанные в файле .travis.yml.


Это нормально, если я вообще не использую Travis Cl? При каких обстоятельствах лучше всего использовать его (или его нужно использовать)?

Да, все в порядке. Не ахти какое дело. Но какие выгоды вам не хватает, не используя эту легкость интегрировать движок с вашим репо. Каждый раз, когда вы совершаете это, возможно, что он что-то пропустил и не смог скомпилировать из-за кода. Как вы узнаете? Таким образом, вы должны использовать Travis-CI.


Я написал блог post, который вы можете прочитать, чтобы знать, что такое Travis-CI, Continuous Integrations и как связать Travis-CI с вашим Github Repo. Я написал это для репозитория Swift.