Введение
Jenkins может выполнять сборки на различных узлах. Метки (labels) описывают возможности узла, например linux-build, и задания могут требовать наличия соответствующей метки, прежде чем Jenkins поставит их в очередь на выполнение. Jenkins также хранит настройки установленных инструментов, таких как Git, чтобы задания и плагины могли ссылаться на именованный инструмент, вместо того чтобы полагаться на жестко заданные пути.
В этой лабораторной работе вы используете панель управления Jenkins для проверки встроенного узла, добавления метки узла, настройки локального инструмента Git, создания Freestyle-задания с ограничением по метке и проверки результатов сборки.
Открытие страницы встроенного узла
На этом этапе вы найдете встроенный узел Jenkins в панели управления. Узел — это среда, в которой Jenkins может выполнять сборки. В этой лабораторной работе используется встроенный узел, так как он уже запущен в контроллере LabEx Jenkins.
Откройте интерфейс рабочего стола. Firefox автоматически откроет Jenkins. Если этого не произошло, перейдите по адресу http://localhost:8080.
В панели управления Jenkins:
Нажмите Manage Jenkins в левой боковой панели, затем выберите Nodes. Откройте узел с именем Built-In Node.
На странице узла должны отображаться статус встроенного узла и параметры навигации, такие как Configure и Build History.

Выполните эту команду в терминале, чтобы зафиксировать доступность страницы встроенного узла:
curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt
Вы должны увидеть:
Built-In Node
Добавление метки к встроенному узлу
На этом этапе вы добавите метку linux-build к встроенному узлу. Метка — это тег планирования. Задания, требующие linux-build, могут выполняться только на тех узлах, у которых есть эта метка.
На странице Built-In Node нажмите Configure.
Найдите поле Labels и введите:
linux-build
Нажмите Save.
После сохранения Jenkins вернется на страницу встроенного узла. На странице должна отобразиться метка linux-build.

Настройка локального инструмента Git
На этом этапе вы зарегистрируете инструмент Git в Jenkins под названием Local Git. Настройка инструментов позволяет Jenkins ссылаться на именованную установку, вместо того чтобы угадывать, какой исполняемый файл использовать.
В панели управления Jenkins:
Нажмите Manage Jenkins, затем выберите Tools.
Прокрутите страницу до раздела Git installations. Если установка Git уже существует, обновите первую из них. Если в разделе нет установок, нажмите Add Git.
Заполните данные установки Git следующими значениями:
Name:Local GitPath to Git executable:git
Нажмите Save.
Jenkins сохранит это определение инструмента в конфигурации контроллера.

Выполните эту команду, чтобы проверить сохраненную конфигурацию инструмента Git:
docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt
Вывод должен содержать как имя инструмента, так и путь к исполняемому файлу:
...<name>Local Git</name>
...<home>git</home>
Создание задания с ограничением по метке
На этом этапе вы создадите Freestyle-задание с именем labeled-tool-demo. Задание будет ограничено узлами с меткой linux-build, поэтому Jenkins должен будет запланировать его выполнение на встроенном узле с этой меткой.
В панели управления Jenkins:
Нажмите New Item, введите labeled-tool-demo, выберите Freestyle project и нажмите OK.
На странице конфигурации:
Выберите Restrict where this project can be run. В поле Label Expression введите:
linux-build
Прокрутите до раздела Build Steps, нажмите Add build step и выберите Execute shell.
Введите следующий скрипт оболочки:
echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"
Нажмите Save.
После сохранения откроется страница задания.

Выполните эту команду, чтобы записать важные настройки сохраненного задания:
docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt
Запуск задания с меткой
На этом этапе вы запустите задание и прочитаете вывод консоли. Это докажет, что Jenkins принял ограничение по метке и что сборка может использовать Git из настроенной среды.
На странице задания labeled-tool-demo нажмите Build Now.
Когда сборка #1 появится в истории сборок, откройте ее и нажмите Console Output. В консоли должны отобразиться сообщение о метке, строка git version и статус Finished: SUCCESS.

Выполните эту команду в терминале, чтобы сохранить данные консоли для проверки:
curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt
Вы должны увидеть следующий вывод:
Running on label: linux-build
git version ...
Finished: SUCCESS
Резюме
Вы изучили встроенный узел Jenkins, добавили метку linux-build через панель управления, настроили именованный локальный инструмент Git, создали Freestyle-задание с ограничением по метке и подтвердили успешный результат сборки.