Три вопроса (Что? Почему? Как?)
Если вы раньше не знакомились со знаниями, связанными с непрерывной интеграцией, у вас неизбежно возникнут три вопроса в заголовке. Теперь давайте начнем с трех вопросов, упомянутых выше:
- что это такое?
Википедия дает следующее объяснение:
Jenkins — это инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java. После спора с Oracle проект был отделен от проекта Hudson. Jenkins предоставляет услуги непрерывной интеграции для разработки программного обеспечения. Он работает в контейнере сервлетов (например, Apache Tomcat). Он поддерживает инструменты управления конфигурацией программного обеспечения (SCM) (включая AccuRev SCM, CVS, Subversion, Git, Perforce, Clearcase и RTC), может выполнять проекты на основе Apache Ant и Apache Maven, а также произвольные сценарии оболочки и пакетные команды Windows. Главный разработчик Jenkins — Косуке Кавагути. [3] Jenkins — это бесплатное программное обеспечение, выпущенное под лицензией MIT. [4]
Другими словами, Jenkins — это инструмент непрерывной интеграции.Мы можем создать необходимую нам среду упаковки и компиляции с помощью его богатой системы подключаемых модулей и автоматически начать упаковку проекта с помощью установленного триггерного механизма и развернуть упакованный проект на сервер. .
- Почему?
Одним словом, я могу выполнить упаковку и развертывание проекта в одну операцию или автоматически. хочу увидеть больше,кликните сюда
- Как это сделать?
Смотри вниз, смотри вниз, смотри вниз.
основная среда
В этой статье в качестве примера используются Mac-10.13.1, Jenkins-2.146, сервер — операционная система Linux, а репозиторий кода — GitLib.
Дженкинс скачать и установить
Я загрузил файл pkg здесь, дважды щелкните, чтобы установить его,
Просто следуйте инструкциям ниже. После успешной установки браузер автоматически откроет следующую страницу. Этот пароль администратора является не паролем вашего компьютера, а паролем, автоматически сгенерированным Jenkins во время установки.Путь, где хранится пароль, указан выше./Users/Shared/Jenkins/Home/secrets/initialAdminPassword
Введите терминал Macsudo vi /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
может видеть
В окне есть строка, которая является паролем, просто скопируйте и вставьте ее в нееНажмите кнопку «Продолжить» в правом нижнем углу, чтобы войти в следующий интерфейс.
Этот шаг заключается в установке подключаемого модуля Jenkins. Есть два варианта: рекомендуемая установка подключаемого модуля и выборочная установка подключаемого модуля. Мы выбираем установку рекомендуемого подключаемого модуля, а затем входим в интерфейс установки подключаемого модуля.
Дождитесь завершения установки, если некоторые плагины не установлены успешно, не беспокойтесь о них, нажмите «Продолжить», чтобы войти в пользовательский интерфейс создания.
После завершения создания войдите в интерфейс адреса конфигурации Jenkins и нажмите «Продолжить».Когда все будет настроено, мы перейдем на домашнюю страницу Jenkins. Поздравляем, вы успешно установили Jenkins!Установите соответствующие плагины
Нажмите на домашнюю страницу ДженкинсаУправление системой > Управление подключаемыми модулями > Дополнительные подключаемые модули, Если следующие плагины не установлены, установите их самостоятельно.
- NodeJs
Добавление среды Node, команды упаковки внешнего интерфейса должны полагаться на среду Node. После установки появится Build Environment
- Опубликовать через SSH Загрузите упакованный файл на сервер и настройте команду, которая будет выполняться после успешной загрузки. После завершения установки он появится вДействия после сборки
- Git Parameter
С помощью этого плагина Дженкинс может выбрать любую ветку для сборки кода. в задаче настройкиОбщие > Параметрическая сборкаВыпадающий список появится после установки плагина.Git ParameterОпции
- GitHub Branch Source
Автоматически извлекать код из удаленного репозитория Git перед упаковкой, после добавленияSource Code ManagementПараметры Git появятся в разделе
Уведомление:При установке плагин необходимо перезапустить, чтобы он вступил в силу.Вы можете поставить галочку ниже, чтобы плагин автоматически перезапустился после установки.
Создание задач автоматического развертывания
Нажмите на главную страницуНовое заданиеилиcreate new jobs, войти на страницу создания, ввести название проекта, выбрать первыйСоздайте бесплатный программный проект,
Нажмите OK, чтобы войти в интерфейс конфигурации- Общая конфигурация
- управление исходным кодом
- триггер сборки
Я не настраивал это, последующие тесты будут строиться напрямую через Jenkins, вы можете выбрать подходящий триггер в соответствии с вашими потребностями.
- среда сборки
проверилProvide Node & npm bin/ folder to PATH
После этого вы обнаружите, что установка NodeJS не имеет вариантов.
- Построить
выберитевыполнить оболочкуВведите команду, которую вы обычно используете для упаковки, в окне Команды.Поскольку упаковка будет загружена на сервер, будет добавлена команда для сжатия файла.
кодecho $WORKSPACE
node -v
npm -v
npm install&&
npm run build
cd dist
tar -acvf dist.tar.gz *
- Действия после сборки
Перед этим нам нужно добавить глобальную конфигурацию сервера для загрузки, введитеУправление системой > Системные настройки,оказатьсяPublish over SSH
, нажмите кнопку Добавить,
Use password authentication, or use a different key
,введите пароль,
Все готово, нажимаемTest Configurationкнопка, после поворота хризантемы появится слово Успех,
Последний шаг, нажмитеспастикнопка.
Вернемся на страницу конфигурации и в разделе Действия после сборки выберитеSend build artifacts over SSH
, добавьте следующую конфигурацию,
tar -zxvf /data/html/delivery/dist.tar.gz -C /data/html/delivery/
rm -rf /data/html/delivery/dist*
Смысл команды в том, чтобы распаковать dist.tar.gz в/data/html/delivery/
ниже и удалите файлы, начинающиеся с dist.
Вышеупомянутая команда выполняет только самые основные действия по развертыванию. Когда проект фактически находится в сети, он должен иметь операцию резервного копирования.Ниже приведена общая команда оболочки, написанная коллегой из бэк-энда.
{
uploadFileName=dist.tar.gz;
frontHtmlFolder=/data/html/xyz/;
backName=xyz
cur_time=$(date '+%Y%m%d%H%M%S');
mkdir -p /data/html;
mkdir -p /data/backup/;
rm -rf $frontHtmlFolder;
mkdir -p $frontHtmlFolder;
tar -zxvf /data/html/$uploadFileName -C $frontHtmlFolder;
mv /data/html/$uploadFileName /data/backup/$cur_time"_"$backName"_"$uploadFileName;
}
uploadFileName — это имя сжатого файла проекта, frontHtmlFolder — путь к развертыванию проекта, а backName — имя резервной копии проекта.
Выполнить операцию выпуска пакета
Вернитесь к Дженкинсу, найдите задачу, которую вы только что создали, и нажмите кнопку позади задачи.
Или перейдите на страницу сведений о задаче, нажмитеBuild with Parameters, выберите ветку, которую вы хотите построить, и нажмите «Начать сборку». существуетBuild History, мы можем видеть задачи в процессе и выполненные задачи Когда индикатор выполнения завершится, а цвет шара впереди станет синим, того же цвета, что и № 29, это означает, что упаковка выполнена успешно.Мы также можем щелкнуть маленький треугольник рядом с № 30 и выбрать просмотр. вывод консоли, как и на этой машине.Как и упаковка, консоль предоставляет подробную информацию журнала, которую мы можем увидеть в конце,Эпилог
Если вы все еще работаете сверхурочно в субботу, собака сверхурочно здесь. Если в статье есть какие-либо ошибки, пожалуйста, укажите на них в комментариях. Если вы думаете, что эта статья может заставить вас идти все дальше и дальше по пути притворства, ставлю автору маленький 👍.