Непрерывная интеграция для CPaaS для передачи голоса, видео и сообщений

Привет, разработчики! Давно не виделись! Сегодня я расскажу вам о VoxEngine CI — новом инструменте для работы с приложениями, сценариями и правилами Voximplant.

Надеюсь, вам будет интересно, даже если у вас еще нет аккаунта на Voximplant. Особенно если вы фанат непрерывной интеграции 🙂

VoxEngine CI призван помочь вам управлять приложениями, правилами и сценариями Voximplant из вашей собственной среды, используя @voximplant/apiclient-nodejs под капотом. С его помощью вы можете перейти на локальную разработку и использовать свои любимые инструменты и системы контроля версий. Если у вас уже есть такие любимые, было бы неплохо связать их с Voximplant с помощью VoxEngine CI.

Мы также подготовили CI/CD шаблоны для GitLab и GitHub. Они помогут вам настроить процессы загрузки вашего кода на платформу Voximplant.

Итак, давайте начнем!

Необходимые условия

  • Учетная запись Voximplant, вы можете создать ее здесь
  • Учетная запись сервиса (мы создадим ее вместе)
  • Node.js >= 11
  • Веселое настроение (необязательно, приветствуется любое настроение)

Здесь я предполагаю, что вы самостоятельно создали аккаунт Voximplant на главной странице и готовы перейти ко второму шагу.

Сейчас и позже вы также можете пройти небольшое руководство, показывающее, как создать облачное приложение Voximplant, чтобы получить представление о том, что такое Voximplant.

Создание учетной записи сервиса

Для работы с VoxEngine CI вам необходим JSON-файл с учетными данными. Перейдите в раздел Service accounts панели управления Voximplant и создайте файл там. Выберите роль Developer, она лучше всего подходит для сегодняшнего урока.

Настройте CI

  1. Чтобы установить VoxEngine CI, выполните следующую команду из папки проекта (если у вас еще нет проекта, сначала создайте его) в Терминале:

  2. Создайте файл .env в корневом каталоге проекта и добавьте переменные, специфичные для среды, чтобы указать имя и расположение JSON-файла с учетными данными вашего аккаунта и папку с файлами, которые будут загружены из вашего аккаунта на следующем шаге:

    VOX_CI_CREDENTIALS=/path/to/the/vox_ci_credentials.json
    VOX_CI_ROOT_PATH=/path/to/the/voxengine_ci_source_files_directory
    
  3. Инициализация проекта. Эта команда загружает все файлы и метаданные из вашей учетной записи Voximplant. Когда все файлы будут загружены, вы сможете изменить их и загрузить обратно в платформу.

Создание приложений, сценариев и правил с помощью CI

Неважно, есть ли у вас уже какие-то приложения, сценарии и правила в вашем аккаунте или нет. Вы можете либо создать, либо просто изменить их с помощью VoxEngine CI.

При использовании VoxEngine CI, пожалуйста, не переименовывайте и не удаляйте существующие приложения, сценарии и правила; создавайте только новые, иначе будет нарушена согласованность.
Если вам действительно необходимо переименовать или удалить что-то, сделайте это из платформы и запустите npx voxengine-ci init --force после этого, чтобы локальная и удаленная (платформа) версии были согласованы.

Приложения

Здесь вам нужно создать файл application.config.json в каталоге /path/to/the/voxengine_ci_source_files_directory/applications/your-application-name.your-account-name.voximplant.com/ (имя аккаунта — это ваше имя пользователя Voximplant), где /path/to/the/voxengine_ci_source_files_directory создается командой npx voxengine-ci init.
Это папка voxfiles по умолчанию или путь, указанный вами в переменной env VOX_CI_ROOT_PATH.

Затем добавьте следующий конфиг в файл application.config.json:

{
    "applicationName": "your-application-name.your-account-name.voximplant.com"
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Поздравляем! Ваше первое приложение готово!

Правила и сценарии

В той же директории создайте файл rules.config.json с таким, например, конфигом:

[
   {
      "ruleName":"first-rule",
      "scenarios":[
         "first-scenario"
      ],
      "rulePattern":"string-with-regexp"
   },
   {
      "ruleName":"second-rule",
      "scenarios":[
         "second-scenario"
      ],
      "rulePattern":"string-with-regexp"
   }
]
Войти в полноэкранный режим Выйти из полноэкранного режима

Здесь first-rule и second-rule — имена ваших правил; first-scenario и second-scenario — имена ваших сценариев; string-with-regexp — регулярное выражение, по которому будет проверяться набранный номер («.*» по умолчанию).

Создайте столько правил и сценариев, сколько вам нужно. Но учтите, что порядок сценариев, прикрепленных к одному правилу в этом файле, определяет порядок их выполнения. Помните об этом при написании кода сценария.

Вот пример такого файла:

Если в вашем приложении еще нет никаких правил, оставьте JSON-файл пустым {}.

Изменять существующие и создавать новые сценарии можно ТОЛЬКО в директории /voxfiles/scenarios/src. На платформу будут загружены только те сценарии, имена которых указаны в файле rules.config.json. Имена файлов сценариев должны соответствовать шаблону *.voxengine.{js,ts}.

В нашем случае имена сценариев должны быть следующими: testscenario1.voxengine.js, testscenario2.voxengine.js. Это файлы, в которых вы пишете код сценария.

Когда все будет готово, запустите

чтобы загрузить новое приложение со всеми правилами и сценариями на платформу.

Используйте флаг --dry-run в этой команде, чтобы собрать проект локально без загрузки изменений на платформу, как показано ниже: npx voxengine-ci upload --application-name your-application-name --dry-run.

Теперь вы можете найти вновь созданные приложения, правила и сценарии на платформе:

Изменение сценариев и правил с помощью CI

Добавьте/измените правила в rules.config.json и сценарии в /voxfiles/scenarios/src, а затем снова запустите команду upload.
Если в команде указать имя правила или ID правила, то на платформу будут загружены только сценарии, привязанные к этому правилу:

npx voxengine-ci upload --application-name your-application-name --rule-name your-rule-name

Это работает либо при загрузке нового правила, либо при изменении существующего.

Если вы изменяете существующее приложение или существующее правило, вы можете указать --application-id и --rule-id вместо --application-name и --rule-name, но если указано и то, и другое, будет учитываться только ID.

Вот как это все работает. Найти больше команд и шаблонов CI/CD для GitHub и Gitlab можно здесь. Оставайтесь с нами и на связи 🙂
Я также буду рад ответить на любые вопросы, которые вы захотите задать после прочтения этой статьи. Хорошего дня!

Оцените статью
Procodings.ru
Добавить комментарий