<style>.lazy{display:none}</style>Как использовать мониторы в Postman для планирования конвейеров в CircleCI

Как использовать мониторы в Postman для планирования конвейеров в CircleCI

В этой статье мы узнаем, как Postman может повысить эффективность работы с конвейерами в CircleCI, в частности с конвейерами, запускаемыми по расписанию.

Рассмотрим проблемы и их решения при работе с запланированными конвейерами в CircleCI.

БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"

Ограничения

Представьте, что вы хотите запланировать запуск конвейера в CircleCI на полночь. Ниже приведен фрагмент кода, показывающий, как можно запланировать это в CircleCI config.yml:

Как запланировать запуск конвейера CircleCI

В этом нет ничего страшного: запуск конвейера начнется вовремя, и вы будете иметь полностью функционирующий запланированный запуск. Однако что, если вы захотите изменить время или cron шаблон?

Для этого необходимо внести изменения в файл config.yml конвейера, зафиксировать их, отправить в удаленный репозиторий, сделать пулл запрос, получить одобрение и, наконец, объединить изменения. Это может занять много времени. А что если у вас несколько запланированных рабочих процессов и вы хотите внести в них изменения? Это не такая уж простая и быстрая задача.

Как же обойти этот бесконечный цикл изменения конфигурации конвейера, коммитов, мерджей и т.д.? Лучший способ – использовать Postman monitors в связке с CircleCI.

Запуск конвейера в CircleCI через API-запрос

Как запустить конвейер CircleCI через API-запрос в Postman

CircleCI предоставляет несколько удобных API для тех, кто хочет запускать конвейеры программно. Сначала рассмотрим, что нужно изменить в файле config.yml, чтобы максимально использовать API.

На изображении выше видно, что мы удалили закодированную логику расписания из файла config.yml, поскольку собираемся запускать конвейер через API вызов. Вместо этого мы реализовали условную логику с помощью параметров конвейера в CircleCI, чтобы ночной рабочий процесс запускался только тогда, когда мы предоставим в теле API-запроса параметр run_nightly_tests с булевым значением, равным true. Почему это необходимо? Потому что если мы не реализуем условную логику для нашего рабочего процесса, то он будет запускаться при каждом коммите кода, чего мы не хотим.

Если вы хотите погрузиться глубже, то вот полный конфигурационный config.yml файл:

Полный конфигурационный config.yml файл

Ниже приведен API-запрос внутри Postman Collection под названием Run CircleCI Pipeline:

API-запрос внутри Postman Collection Run CircleCI Pipeline

Видно, что тело запроса API содержит информацию о branch на котором мы хотим выполнять ночные тесты, а также необходимый параметр для запуска рабочего процесса ночного запуска тестов run_nightly_tests: true.

Что на счет URL? Нам необходимо указать систему контроля версий (VCS), имя пользователя или название организации, а также имя репозитория VCS. Подробные рекомендации по построению URL запроса и все требования можно найти в официальной документации CircleCI API.

Примечание: Вам необходимо иметь CIRCLECI_PERSONAL_TOKEN установленный через ваш проект CircleCI и включить этот токен в заголовок запроса API, как показано ниже:

CIRCLECI_PERSONAL_TOKEN

Теперь, когда наш API-запрос готов, мы можем отправить его и увидеть в CircleCI, что он инициирует запуск конвейера:

Итак, мы разобрались с тем, как запускать конвейеры через API-запросы, но нам еще предстоит настроить желаемое расписание.

Планирование запуска конвейера в CircleCI через мониторы Postman

Сервис мониторинга Postman позволяет отслеживать состояние API, планировать запуск мониторов для коллекций, проводить непрерывное тестирование, интегрировать мониторы со сторонними сервисами, такими как Slack, Opsgenie, Datadog, и многое другое.

Создадим монитор для коллекции Run CircleCI Pipeline, содержащей наш API-запрос:

Создание монитора для коллекции Run CircleCI Pipeline

Для этого выберите коллекцию из раскрывающегося списка Collection и укажите желаемое расписание работы монитора: в данном случае выберите каждый день в полночь.

Запустите монитор, и он снова запустит тот же самый ночной конвейер тестирования, запущенный в CircleCI.

Теперь вы можете двигаться дальше и модифицировать расписание монитора по своему усмотрению, используя широкий спектр опций, предоставляемых службой мониторинга Postman, и все это без изменения конфигурации в файле CircleCI config.yml. Поздравляем, теперь у вас есть графический пользовательский интерфейс (GUI) для запланированного конвейера.

Ключевые преимущества мониторов Postman

Ниже приводится краткое описание нескольких важнейших преимуществ использования мониторов Postman для запуска конвейеров в CircleCI:

  1. Простое, быстрое и гибкое ведение расписания. Можно отредактировать монитор Postman и выбрать любое расписание для своего конвейера, не внося изменения в его конфигурацию, с последующим фиксированием изменений и т.д.
  2. Графики монитора Postman позволяют визуализировать прогоны, то есть мы видим, когда и сколько раз был запущен конвейер.
  3. Postman позволяет выбрать мониторы “Pause” или “Resume”, что означает возможность приостанавливать или возобновлять конвейеры в CircleCI. Это совершенно новая возможность, доступная только при использовании мониторов Postman, поскольку CircleCI не поддерживает её самостоятельно.
  4. С помощью Postman Monitor API можно запустить монитор всего одним API вызовом. По сравнению с запросом API CircleCI, где мы указывали в теле запроса параметры и branch, для запуска монитора не нужно ничего указывать. Достаточно одного POST-запроса с пустой полезной нагрузкой, и ваш монитор/конвейер запущен.

В этой статье мы познакомились с тем, как работать с конвейерами в CircleCI с помощью Postman. Мониторы Postman не только позволяют быстро и легко планировать запуск конвейеров, но и предоставляют совершенно новые возможности приостановки или возобновления работы конвейеров, что делает процессы CI и тестирования более управляемыми.

Перевод статьи «How to Use Postman Monitors to Schedule CircleCI Pipelines».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *