Введение
Представляю вашему вниманию внешнюю обработку, которая позволяет совершать обмен между 1С:Предприятием и Jekinins посредством встроенного API. Взяв эту обработку за основу можно настроить регламентные задания для запуска сборок Jenkins, запускать задачи и мониторить их статусы в удобной структуре. Для запуска задач используется POST Http метод, с передачей параметров задачи, которые у вас установлены. Есть возможность открывать URL как задачи, так и сборки. В общем все поподробнее можете прочитать ниже, а также скачать и посмотреть самому)
Функции
Ключевые функции
- Авторизация пользователя на развернутом сервере Jenkins.
- Авторизация анонимного пользователя на развернутом сервере Jenkins.
- Просмотр доступных задач для авторизованного пользователя.
- Автоматическая загрузка статусов сборок по задаче;
- Загрузка статусов (иконок) сборок задач
- Изменение количества загружаемых сборок.
- Открытие задач в новом окне в программе.
- Запуск задач с параметрами и без.
- Просмотр номера и статуса запущенной задачи.
- Открытие задач и сборок в окне браузера.
Дополнительные возможности
- В случае ошибки в момент выполнения http запроса к Jenkins, программа выдает диагностическое сообщение с кодом состояния и открывает для просмотра в виде текста файл с ответом от Jenkins.
- Запросы посылаемые к Jekins API, получают только необходимые данные благодаря tree методу, за счет чего нагрузка на http не высока.
- Все запросы отправляются с сервера, а не с клиента.
- Реквизиты и страницы для открытия задачи в новой вкладке создаются программно.
Источники и ссылки:
- Спецификация по работе с Jekins с использованием REST: https://www.jenkins.io/doc/book/using/remote-access-api/
- Индивидуальные параметры по REST API для вашего Jenkins {Your Jenkins URL}/api/
- Примеры REST запросов к Jenkins: https://beginnersforum.net/blog/2019/11/28/jenkin-paramerized-job-api-json/
- Build with parameters Jenkins: https://plugins.jenkins.io/build-with-parameters/
- Jenkisn json api: https://gist.github.com/justlaputa/5634984
- Taming the Jenkins JSON API: https://www.cloudbees.com/blog/taming-jenkins-json-api-depth-and-tree
-
HTTP Request Jenkins: https://plugins.jenkins.io/http_request/
Особенности и ограничения
- Данная обработка предназначена для работы с серверной версией Jenkins.
- Настройки подключения, общие настройки сохраняются только для текущего пользователя.
- Проверка подключения производится используется обычная проверка подлинности Basic authentication.
- В запросах к Jenkins используется Крошка (Crumb) {Jenkins URL}/crumbIssuer/api/json.
- Если авторизация проведена анонимно, то будут показываться только те задачи, на которые есть права доступа.
- Количество загружаемых сборок уменьшено до 10 для ускорения работы, но это значение можно изменить.
- Если у вас параметризированная сборки, но у неё не было ни разу запуска, загрузка параметров производиться не будет.
Подключение к серверу Jenkins
На закладке "Настройки подключения" указываются параметры для подключения к Jenkins:
- Протокол - протокол подключения http/https
- Сервер - адрес сервера Jenkins
- Порт - по умолчанию 8080
- Вариант авторизации, если поставлена галочка, будет выполнена анонимная авторизация, иначе необходимо ввести логин и пароль.
Задачи Jenkins
В случае успешной проверки подключения, нам предложат загрузить доступные задачи Jenkins.
Если авторизация пройдена при следующем запуске авторизация будет произведена автоматически, а также будут загружены доступные задачи
Для задач доступны следующие соответствия jenkins color иконкам:
Коллекция для колонки загружена на прямую, если расскажете как сделать правильнее буду очень рад :)
Для задач, для которых не возможно получить параметры и статусы будет выведена предупреждающая декорация.
При двойном нажатии по задаче из списка, она откроется в окне браузера
Общие команды на вкладке ЗадачиJenkins
Заполнить задачи
Выполняет полную загрузку доступных задач из Jenkins вместе с иконкой состояния, полностью генерирует новые UID для задач, закрывает активные открытые окна задач
Обновить статусы задач
Выполняет обновление статусов задач для текущих задач в списке, не обновляет UID для текущих задач.
Открыть в новом окне
Если для задачи есть возможность просмотра статусов сборки, то для этой задачи появляется возможно открыть её в новом окне.
Закрыть открытые задачи
Закрывает все открытые вкладки задач, а также удаляет все созданные программные реквизиты и элементы.
Запуск задач
Запуск задач производится на открытой вкладке задачи.
Если у задачи нет параметров, то будет выведено соответствующая декоративная надпись
Если у задачи есть параметры, то они будут выведены
После нажатия на кнопку "Запустить задачу" нам выведется вопрос, в случае ответа Да, сборка запустится и нам вывдетеся сообщение с номером сборки.
Сборки задач
Для задач у которых возможно получить статусы сборок, есть возможность их загрузить.
- Загрузить статусы сборок - загрузить статусы сборок, присвоить новые UID для статусов
- Очистить статусы сборок - полностью очищает статусы для данной задачи
- Обновить статусы сборок - обновляет статусы сборок
Если дважды нажать на статус сборки, то она откроется в окне браузера.
Общие настройки
Получение параметров
- Выбор вида сборки, откуда будут получаться параметры:
- lastBuild - Последняя сборка
- lastCompletedBuild - Последняя запущенная сборка
- lastSuccessfulBuild - по умолчанию - Последняя успешная сборка
Загрузка статусов сборок
- Автоматически загружать статусы сборок - если включено, то при выборе задачи из списка будет автоматически загружаться статусы сборки
- Загружать статусы сборок задач - Из-за особенностей Jenkins API, для получения статуса сборки задачи необходимо выполнить дополнительные Rest запрос к каждой сборке, для получения его состояния, если данный параметр включен, то будет выполняться статус задач, но за счет этого загрузка производится медленнее.
- Количество загружаемых сборок - по умолчанию 10 - Количество сборок, которые будут загружаться, при значении от 10-20 , настройка 3 работает очень уверенно и без торможений.
- Загружать все - будет выполнена полная загрузка всех сборок задач (не рекомендуется, если количество сборок превышает 1000)
- Показывать URL задач и сборок - изменяет видимость URL для задач и сборок
Запуск задач
- Закрывать задачу после запуска - После успешного запуска задачи, вкладка с задачей будет закрыта
- Обновлять статусы задач и сборок - После успешного запуска задачи, будет выполнено автоматическое обновление статусов задач и сборок. Если включена настройка 1, то также будет выбрана задача и сборка в списке.
Заключение
Буду рад каждому комментарию, предложению и критике, так как я начинающий программист 1С и уверен, что многого еще не знаю!
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.151.38