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

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

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

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

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

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

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

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

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

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

2 ответов


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


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

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

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


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

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


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

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


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