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


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

Failed-сборка Travis CI не удалась

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

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

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

мое нынешнее понимание Travis CI заключается в том, что то, что он делает, автоматически подталкивает проект git commit -am ".." и я не совсем понимаю какая-то его часть.

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

  2. в нем говорится, что" это включает в себя коммиты для всех ветвей " - но что, если я не хочу совершать все ветви?

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

2 60

2 ответа:

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

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

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

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


в нем говорится, что" это включает в себя коммиты для всех ветвей " - но что, если я не хочу совершать все ветви?

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


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

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


я написал блог post который вы можете прочитать, чтобы узнать, что такое Travis-CI, непрерывные интеграции и как связать Travis-CI с вашим РЕПО Github. Я написал его для быстрого хранилища.