Интеграция Jenkins с Git - полезно для каждого профессионала DevOps



В этом блоге обсуждается интеграция Git с Jenkins. Он также обсуждает преимущества интеграции Git с Jenkins вместе с демонстрацией.

безусловно, неполно без Дженкинса. Дженкинс вместе с Git - прекрасное сочетание. Итак, в этой статье я расскажу об интеграции Jenkins с Git и ее преимуществах. Указатели, которые мы собираемся рассмотреть, следующие:

Итак, давайте начнем с нашей первой темы.





Что такое Git - почему Git Пришел к существованию?

Все мы знаем: «Необходимость - мать всех изобретений». Точно так же Git возник, чтобы удовлетворить определенные потребности, с которыми разработчики сталкивались до Git. Итак, давайте сделаем шаг назад, чтобы узнать все о системах управления версиями (VCS) и о том, как появился Git.

Управление версиями это управление изменениями в документах, компьютерных программах, больших веб-сайтах и ​​другом сборе информации.



Есть два типа VCS:

  • Централизованная система контроля версий (CVCS)

  • Распределенная система контроля версий (DVCS)



Централизованная VCS

Централизованная система контроля версий (CVCS) использует центральный сервер для хранения всех файлов и обеспечивает совместную работу команды. Он работает в едином репозитории, к которому пользователи могут напрямую обращаться к центральному серверу.

Пожалуйста, обратитесь к диаграмме ниже, чтобы получить лучшее представление о CVCS:

Репозиторий на приведенной выше диаграмме указывает на центральный сервер, который может быть локальным или удаленным, который напрямую подключен к каждой из рабочих станций программиста.

Каждый программист может извлечь или Обновить свои рабочие станции с данными в репозитории. Они также могут вносить изменения в данные или совершить в репозиторий. Каждая операция выполняется непосредственно в репозитории.

Хотя поддерживать единый репозиторий кажется довольно удобным, у него есть ряд серьезных недостатков. Некоторые из них:

  • Он не доступен локально, что означает, что вам всегда нужно быть подключенным к сети для выполнения каких-либо действий.

  • Поскольку все централизовано, в любом случае сбоя или повреждения центрального сервера это приведет к потере всех данных проекта.

Вот где распределенная VCS решает проблему.

Распределенная VCS

Эти системы не обязательно полагаются на центральный сервер для хранения всех версий файла проекта.В распределенной VCS каждый участник имеет локальную копию или «клон» основного репозитория. Здесь каждый поддерживает свой собственный локальный репозиторий, который содержит все файлы и метаданные, имеющиеся в основном репозитории.

Вы поймете это лучше, обратившись к диаграмме ниже:

Как вы можете видеть на приведенной выше диаграмме, каждый программист самостоятельно поддерживает локальный репозиторий, который фактически является копией или клоном центрального репозитория на их жестком диске. Они могут фиксировать и обновлять свой локальный репозиторий без какого-либо вмешательства.

Они могут обновлять свои локальные репозитории новыми данными с центрального сервера с помощью операции, называемой « Тянуть »И повлиять на изменения в основном репозитории с помощью операции под названием« От себя »Из своего локального хранилища.

Теперь давайте попробуем узнать об определении Git.

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

  • Обычно, когда вы разрабатываете большой проект, у вас есть огромное количество сотрудников. Поэтому очень важно поддерживать связь между сотрудниками при внесении изменений в проект.

  • Сообщения коммитов в Git играют очень важную роль в общении между командой. Помимо общения, наиболее важной причиной использования Git является то, что у вас всегда есть стабильная версия кода.

  • Следовательно, Git играет жизненно важную роль в достижении успеха в DevOps.

Что такое Дженкинс?

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

С Jenkins организации могут ускорить процесс разработки программного обеспечения за счет автоматизации. Jenkins объединяет процессы жизненного цикла разработки всех видов, включая сборку, документирование, тестирование, пакет, этап, развертывание, статический анализ и многое другое.

Jenkins обеспечивает непрерывную интеграцию с помощью плагинов. Плагины позволяют интегрировать различные этапы DevOps. Если вы хотите интегрировать определенный инструмент, вам необходимо установить плагины для этого инструмента. Например, Git, проект Maven 2, Amazon EC2, издатель HTML и т. Д.

Преимущества Jenkins:

  • Это инструмент с открытым исходным кодом, пользующийся большой поддержкой сообщества.

  • Слишком просто установить.

  • Он имеет более 1000 плагинов для облегчения вашей работы. Если плагина не существует, вы можете его написать и поделиться с сообществом.

  • Это бесплатно.

  • Он построен на Java и, следовательно, переносится на все основные платформы.

Теперь вы знаете, как Jenkins преодолевает традиционные недостатки SDLC. В таблице ниже показано сравнение между «До и после Дженкинса».

До ДженкинсаПосле Дженкинса
Был собран и протестирован весь исходный код. Выявление и исправление ошибок в случае сбоя сборки и тестирования было трудным и требовало много времени, что, в свою очередь, замедляло процесс доставки программного обеспечения.Каждый коммит, сделанный в исходном коде, создается и тестируется. Таким образом, вместо проверки всего исходного кода разработчикам нужно сосредоточиться только на конкретной фиксации. Это приводит к частым выпускам нового программного обеспечения.
Разработчикам нужно дождаться результатов тестированияРазработчикам известен результат тестирования каждой фиксации исходного кода в процессе выполнения.
Весь процесс ручнойВам нужно толькозафиксируйте изменения в исходном коде, и Jenkins автоматизирует остальную часть процесса за вас.

Почему Jenkins и Git используются вместе?

Как обсуждалось ранее, Идти это менеджер управления версиями. Здесь вы храните исходный код для отслеживания всех изменений кода, которые происходят с течением времени, и для определения базовых версий версий, когда они будут готовы к выпуску.

Дженкинс , с другой стороны, это решение для непрерывной интеграции. Он предназначен для автоматизации большинства задач, которые разработчик должен выполнять при разработке нового приложения (проверка качества кода, сборка, архивирование артефактов сборки, интеграционное тестирование, развертывание в различных средах и т. Д.). Без решения CI разработчик вынужден тратить много времени на выполнение этих повторяющихся непродуктивных задач.

Преимущества:

  • Git и Jenkins очень сильны, но с большой силой приходит большая ответственность. Довольно часто оправдывается ненужное количество сложность в конвейере сборки просто потому что ты можешь.
  • В то время как у Дженкинса есть множество хитростей в рукаве, легко использовать возможности Git, поскольку он позволяет управлять выпусками и значительно проще отслеживать ошибки через некоторое время.
  • Мы можем сделать это, внимательно относясь к версиям кода, который мы создаем, и соответствующим образом помечая их. Это сохраняет информация о выпуске рядом с кодом , а не полагаться на номера сборки Дженкинса или другие прозвища.
  • Защита веток Git снижает риск человеческой ошибки , а автоматизация как можно большего числа задач сокращает частоту приставания (или ожидания) к этим людям.

Пример:

Давайте возьмем пример новой функции в веб-приложении. Разработчик будет идентифицирован и назначен для выполнения задачи, он берет существующую кодовую базу из системы управления исходным кодом - скажем, Git, вносит свои изменения, выполняет модульное тестирование, обеспечивает качество кода вручную и проверяет новый код обратно в Git.

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

Этот миньон - Дженкинс. Он действует как оркестратор для запуска всех этих действий после того, как изменение проверено в системе управления версиями (Git), и, таким образом, дает разработчику быструю обратную связь с разработчиком, достаточно ли внесенные им изменения для производственного развертывания или нет.Это чрезвычайно гибкий проект с открытым исходным кодом и множество плагинов, которые могут делать практически все, что вы хотите.

Демо

Здесь мы увидим, как интегрировать Git с Jenkins. Вы должны выполнить 5 шагов:

1. Создайте образец программы:

Вы можете создать любую программу-образец, например Java, Python или любую другую программу. Здесь мы напишем простой Программа Python что печатает Hello, World!

2. Создайте задание Jenkins:

  • Здесь сначала вам нужно начать Дженкинс с помощью командной строки.

  • Для этого вам сначала нужно перейти к местоположению Jenkins в вашей системе и использовать команду java -jar jenkins.war

  • После выполнения этой команды откройте веб-браузер и перейдите на домашнюю страницу Jenkins по ссылке локальный: 8080 . Это номер порта по умолчанию.

  • Откройте домашнюю страницу Jenkins. ввод логина и пароля.

  • Для создания проекта нажмите на Новый предмет и войдите в название проекта и выберите Фристайл проект . Щелкните ОК.

3. Добавьте эту программу в Github:

  • Откройте git bash в вашей системе. Навигация к месту расположения вашей программы. Инициализируйте пустой репозиторий с помощью команды git init .

  • Используйте команду git add. чтобы добавить файл в промежуточную область из рабочего каталога.

  • Теперь добавьте файл в локальный репозиторий с помощью команды git commit -m «добавлен файл demo.py» .

  • Теперь тебе нужно От себя этот файл в удаленный репозиторий. Для этого перейдите в свою учетную запись GitHub и создайте новый общедоступный репозиторий. Теперь скопируйте расположение этого репозитория и перейдите в терминал git bash. Здесь введите команду git удаленное добавление источника . Поскольку теперь вы подключились к удаленному репозиторию, теперь вы можете отправить туда свой код с помощью команды git push -u origin master. Чтобы убедиться в этом, перейдите в учетную запись GitHub и обновите страницу. Вы увидите добавленный файл.

4. Добавьте подключаемый модуль Git в Jenkins:

  • На главной странице Дженкинса перейдите по адресу Управлять Дженкинсом .

  • Затем нажмите на Управление плагинами . Здесь проверьте наличие плагина Git в установленном разделе. Если его нет здесь, найдите его в доступном разделе и загрузите.

5. Настройте задание Jenkins для запуска сборки:

  • Перейдите к проекту в Jenkins, который мы создали на шаге 2. Здесь, в разделе «Управление исходным кодом», выберите git и введите ссылку на публичный репозиторий, который вы создали на шаге 3. Затем в Раздел 'Триггеры сборки' , нажмите на Опция опроса SCM . Здесь, в части «Расписание», вы должны ввести пять звездочек, разделенных пробелом. Это не что иное, как синтаксис cron для вашей работы. Это означает, что Jenkins будет каждую минуту проверять наличие каких-либо изменений в исходном коде, и в случае каких-либо изменений запускается сборка Jenkins.

    анализ настроений в твиттере с помощью Spark
  • Нажмите на Применять а затем на Сохранить . Затем на домашней странице вашего проекта нажмите Построить сейчас . Это запустит проект, и в выводе консоли вы увидите, что ваша программа выводит статус вашего задания Jenkins. Если все в порядке, он будет отображаться как Успех .

Так происходит интеграция Jenkins с Git. На этом мы подошли к концу статьи об интеграции Jenkins Git. Надеюсь, вам понравилась эта статья.

Теперь, когда вы поняли, что Интеграция Jenkins с Git есть, проверьте это от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся понять, что такое DevOps, и получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT для автоматизации нескольких этапов в SDLC.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев, и мы свяжемся с вами