У меня был жесткий первый раз, работая с Дженкинсом, потому что большинство статей для настройки и настройки его устарели. Итак, я пишу это, чтобы облегчить чью-то работу и сделать это, чтобы им не нужно проходить через то, что я прошел, чтобы настроить это.
Итак, вот идет …
Во-первых, что даже Дженкинс?
Jenkins — это инструмент автоматизации от открытых источников, который используется для автоматизации здания, тестирования и развертывания программного обеспечения, что делает непрерывную интеграцию и непрерывное развертывание для пользователей.
По сути, это означает, что Дженкинс (и многие другие инструменты) позволяют автоматизировать процесс развертывания или обслуживания изменений в вашем программном обеспечении для пользователей, когда эти изменения готовы. Представьте себе удобство пользователей, видя ваши обновленные сайты, как только вы объединяете PR на Master (или основной) 😌.
Почему Дженкинс?
- Это бесплатно.
- У него есть сильное сообщество, поэтому нахождение поддержки не является проблемой.
- Jenkins можно легко настроить, и я надеюсь доказать это с этой статьей, поэтому, пожалуйста, читайте на ☺️.
Для этого учебника мы узнаем, как выполнить CI/CD для приложения узла с jenkins. Давайте начнем с подсветки всех шагов, которые мы возьмем, а затем подробно объяснили их ниже:
- Создайте репозиторий GitHub для приложения узла
- Создайте простое приложение узла и нажмите на GitHub
- Создайте приложение Heroku для развертывания
- Установите Jenkins.
- Добавьте GitHub WebHook, чтобы нажать изменения в женкинс
- Настройте приложение с jenkins
- Добавление плагинов GitHub в jenkins
- Настройте Jenkins, чтобы развернуть в Heroku на успешное тестирование
Предварительные условия
- Учетная запись GitHub. Вы можете зарегистрироваться здесь Отказ
- Сервер Ubuntu. Если вы студент и будете использовать Цифровой океан , вы можете получить кредит на 100 долларов, используя Github Student Developer Pack Отказ Создайте сервер Ubuntu, используя этот Учебное пособие Отказ Настройте сервер, следуя этому Начальная установка сервера для Ubuntu 20.04 Учебное пособие, в том числе un root root root, брандмауэр и доступ SSH с вашего локальной машины.
- Аккаунт Heroku. Вы можете зарегистрироваться здесь Отказ
Теперь давайте начнем!
Шаг 1 — Создайте репозиторий GitHUB для приложения узла
Войдите в свой аккаунт GitHub и создайте новый репозиторий. Вы можете дать ему имя по вашему выбору, я назову мой jenkins-test Отказ Вы можете инициализировать с ПРОЧТИ МЕНЯ и .gitignore для Узел . Кроме того, убедитесь, что ваш репозиторий установлен на публичный Отказ
Шаг 2 — Создайте простое приложение узла и нажмите на GitHub
После создания репозитория клонирует репозиторий к локальной машине, используя следующую команду:
git clone
Обязательно измените Repository_url
с вашим. Создать package.json Файл, откройте свой терминал и CD
в вашу папку проекта, затем запустите NPM init
и следовать подсказке. Я добавил скриншот, чтобы увидеть взаимодействие CLI ниже.
Вы можете удалить или изменить, что в блоке сценариев вашего package.json Файл и добавьте следующее в Начните и Тест приложение:
"start": "node index.js", "test": "jest"
Мы будем использовать Экспресс Для нашего примерного узла приложения, поэтому идите вперед и установите его, запустив эту команду в терминале:
npm install express
Далее создайте index.js Файл, который будет служить точкой входа в наше приложение узла и добавить к нему следующие строки:
const express = require("express"); const app = express(); app.get("/", (req, res) => { res.status(200).json("Hello world"); }); module.exports = app.listen(process.env.PORT || 4000, () => console.log(`Running on http://localhost:4000`) );
Беги NPM начать
и посетить http://localhost: 4000/ В вашем браузере, чтобы просмотреть приложение узла, вы должны увидеть Здравствуйте, мир отображается в браузере.
Далее мы добавим пару тестов в наше приложение, в конце концов, с CI, мы должны убедиться, что тесты доступны и передаются до изменения изменений.
Итак, вернитесь к терминалу, убедитесь, что вы в корневом каталоге вашего проекта, и установите шума и Супертест Пакеты, использующие следующую команду:
npm install --save-dev jest supertest
Далее в корневом каталоге проекта создайте папку и назовите его __test__ (два подчеркивания, предшествующие и заканчиваются). Внутри этого __test__ Папка, создайте index.test.js Файл и добавьте хотя бы следующий код к нему (вы всегда можете сделать ваши тесты более всеобъемлющими).
const request = require("supertest"); const app = require("../index"); describe("Get route", () => { it("page should return hello world", async (done) => { const res = await request(app).get("/"); expect(res.statusCode).toEqual(200); expect(res.body).toEqual("Hello world"); done(); }); }); afterAll(async () => { await app.close(); });
Беги NPM тест
или NPM запустить тест
В терминале, и вы должны увидеть ваш пропуск (ы):
Теперь, когда наш код работает, и тесты проходят, мы можем совершить изменения и подтолкнуть к GitHub.
git add . git commit -m "initial commit" git push
Шаг 3 — Создайте приложение Heroku для развертывания
Войдите в свою приборную панель Heroku. Посмотрите вправо вправо и нажмите Новый Отказ Выберите Создать новое приложение Отказ Добавить Имя приложения по вашему выбору и Выберите регион близко к тебе. Нажмите Создать приложение Отказ
Вернитесь к вашему проектному терминалу и Вход Heroku, используя Heroku Cli Отказ Если вы еще не установили Heroku CLI, вы можете следовать за этим Статья Отказ
После этого добавьте пульт в свой локальный репозиторий с помощью:
heroku git:remote -a heroku-app-name
Затем нажмите код, используя:
git push heroku
Это сделано, чтобы убедиться, что все работает правильно, прежде чем автоматизировать его. Вы можете нажать на Открытое приложение На приложении Heroku приложений, чтобы проверить, работает ли она правильно.
Шаг 4 — Установите Jenkins
Откройте новый терминал и войдите в свой сервер с помощью Не-root учетная запись пользователя.
ssh username@droplet_ip_address
С этим мы можем обновить ядро со следующей командой:
sudo apt-get update
Запустите следующую команду для установки Java Runtime:
sudo apt-get install default-jre sudo apt-get install default-jdk
Запустить следующие команды один за другим, чтобы установить Jenkins.
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \ /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
Теперь, что Jenkins и его зависимости устанавливаются, мы можем начать его использовать:
sudo systemctl start jenkins
Вы можете проверить, успешно ли Jenkins начал использовать:
sudo systemctl status jenkins
Это должно показать Активный :
Так как Дженкинс работает на порту 8080 Давайте откроем его, используя UFW. :
sudo ufw allow 8080
Вы можете проверить UFW Статус с:
sudo ufw status
Теперь посетите http://ip_address: 8080 Чтобы настроить Дженкинс, вы должны увидеть Разблокировать Дженкинс экран.
Чтобы разблокировать Jenkins, вернитесь к терминалу и введите следующую команду для отображения пароля.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Скопируйте пароль и вставьте его в Администратор пароль поле. Следующий экран показывает Настроить Дженкинс нажмите на Установите предложенные плагины .
После завершения установки требуется мы к Создать первый администратор пользователя экран. Введите Имя пользователя , Пароль , Полное имя и Адрес электронной почты Для вашего пользователя, то Сохранить и продолжить Отказ
После этого введите IP-адрес сервера I.E http://ip_address: 8080 Тогда Сохранить и закончить Отказ Yay🎉 jenkins готов! Нажмите на Начните использовать jenkins Отказ
Шаг 5 — Добавьте GitHub WebHook для толкания изменений в женкинс
В репозитории Github приложения перейдите в Настройки Затем из боковой панели нажмите на WebHooks Отказ Нажмите на Добавить окна и введите URL jenkins с /github-webhook/ Прилагается к нему, в URL полезной нагрузки поле.
Выберите Приложение/JSON для Content-Type Отказ
Выберите Просто пушное событие для мероприятия, чтобы вызвать веб -ook.
Проверьте Активный и нажмите Добавить веб -ook. . Теперь GitHub может успешно продвигать события в Дженкинс.
Шаг 6 — Настройте приложение с jenkins
Откройте новую вкладку или окно терминала или войдите в свой сервер с тем же Не-root учетная запись пользователя.
ssh username@droplet_ip_address
В этом же терминале включите права корневых привилегий, используя:
sudo su apt install npm
После переключения на корневую пользователь и устанавливать NPM, Jenkins автоматически создает новый пользователь после установки. Переключитесь на него с помощью этой команды.
su jenkins
Создайте новую клавишу SSH со следующей командой:
ssh-keygen -t rsa
Нажмите Введите Для местоположения и не введите ни один пароль, когда требуется, просто нажмите Введите Отказ
Как только процесс завершен, распечатайте информацию об открытом виде, используя:
cat ~/.ssh/id_rsa.pub
Скопируйте открытый ключ. Теперь войдите в систему обратно к Не-root Пользователь в новом терминале. Открыть autorized_keys Со следующей командой:
sudo vim ~/.ssh/authorized_keys
Вставить в id_rsa Открытый ключ и выход.
Для того, чтобы подтвердить, что ключи правильно настроены, переключитесь на Дженкинс Серверный терминал и попробуйте войти в Не-root Пользователь, используя SSH. Вы бы успешно вошли в систему, если вы следите за процессом соответственно.
Шаг 7 — Добавление плагинов GitHub в Jenkins
В приборной панели Jenkins перейдите к Управляйте Дженкинсом , а затем нажмите на Управление плагинами . С доступной вкладки, поиск Github и выберите Плагин интеграции GitHub . Нажмите на Установить без перезагрузки И плагин будет установлен через несколько секунд.
Шаг 8 — Настройте Jenkins для развертывания в Heroku на успешное тестирование
Теперь, когда Github теперь подключен к jenkins, мы можем создать новый проект. На боковой панели нажмите Новый товар Выберите Фристайл проект из вариантов и нажмите Хорошо Отказ
Вы должны быть направлены на страницу конфигураций рядом, но если нет, вы можете открыть его, нажав Настроить на левой боковой панели.
На странице конфигурации под Общее Вкладка, проверьте Проект github Вариант и добавить Github Project Link (URL для вашего проекта REPO, без расширения .git).
Далее прокрутите вниз до Управление исходным кодом Раздел, выберите Гит и добавьте Репозиторий URL с .git Расширение (тот же URL, который вы использовали для клонирования репозитория).
Вы можете изменить Мастер ветвь к главный или любые другие ветви, которые вы хотите для процесса развертывания.
Нажмите на Добавить репозиторий Кнопка, чтобы добавить второй репозиторий, указывая на ваше приложение Heroku.
Чтобы получить ссылку на приложение Heroku app, перейдите к Настройки приложения На вашей панели инструментов Heroku и скопируйте ссылку. Вернитесь на вашу приборную панель Jenkins и вставьте эту ссылку на Репозиторий URL Отказ
Нам понадобится новые учетные данные, поэтому нажмите Добавить , чтобы создать учетные данные для нашего приложения Heroku.
Выберите Дженкинс из списка, и вы должны увидеть всплывающее окно.
Убедись Добрый это Имя пользователя с паролем и Область это глобальный Отказ
Тип в Имя пользователя по вашему выбору, но лучше всего сделать что-то описательное. Я буду использовать Heroku Как мое имя пользователя.
Далее нам нужно добавить Heroku Ключ API в Пароль поле, а Сохранить . Чтобы получить Heroku API ключ Перейдите в приборную панель Heroku, нажмите на Настройки учетной записи и прокрутите вниз, чтобы увидеть Ключ API Отказ Скопируйте это и вставьте его в Пароль поле.
Вы можете добавить Описание Для этого учетных данных, если вы хотите.
Нажмите Добавить завершить создание учетных данных.
Теперь убедитесь, что новые приведенные вами учетные данные, которые мы только что создали, выбрано в раскрывающемся списке. Если нет, нажмите на выпадку и выберите его.
Далее нажимайте на Advanced и добавьте Имя Чтобы определить этот репозиторий среди других удаленных репозиториев. Нам понадобится это имя позже. Я назвал мой, jenkinstest Потому что простота.
Далее прокрутите вниз до Построить триггеры Раздел и проверка Github крючком крючка для GITSCM Обязанности вариант.
Под Построить Раздел, нажмите Добавить шаг сборки кнопка, а затем нажмите на Выполнить оболочку Отказ Введите следующий код в оболочку:
#!/bin/bash ssh non-root-username@alias proj="cd node-app-name" git pull origin main npm install npm test || exit 1
Нажмите на Добавить действие пост-сборки , выберите Git Publisher и выберите Нажмите только в том случае, если построить успех вариант.
Нажмите на Добавить ветку введите имя ветви для развертывания внутри Ветвь для толчка поле, а добавьте Имя используется для идентификации хранилища приложения Heroku в Цель удаленного имени Поле (мой был Дженкинстест, если вы помните, так что добавьте свой здесь).
Тогда Сохранить Отказ
Перейдите на панель инструментов проекта, нажмите Построить сейчас На левой боковой панели и смотрите радостно, когда ваш код успешно строит!
Для удачного удара дофамина введите изменения в свой код и нажмите на GitHub. Смотрите снова, когда ваш код автоматически развернут к Heroku.
Если вы нашли эту статью полезную, пожалуйста, оставьте сердце или комментарий. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать в разделе «Комментарий».
Кроме того, не забудьте следовать за мной за дополнительные статьи. Спасибо.
Оригинал: «https://dev.to/mariehposa/achieving-continuous-integration-and-deployment-with-jenkins-4d6k»