Уведомить об обновлении приложения ember.js после успешного развертывания на GitLab CI / CD - PullRequest
0 голосов
/ 11 октября 2018

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

Например, наша основная ветвь также может быть развернута на стадии подготовки при принятии запроса на слияние.Вот наш пример deploy_staging задание на gitlab-ci.yml.

deploy_staging:
  type: deploy
  script:
    - yarn install
    - node_modules/ember-cli/bin/ember deploy staging --activate
  environment:
    name: staging
  only:
    - master

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

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

Теперь эта проблема сводится к следующему:

Как мы можем отправить сигнал запущенному приложению ember, чтобы мы могли запрашивать уведомление об обновлении страницы при появлении обновлений (после успешной доставки CI / CD) ?

1 Ответ

0 голосов
/ 11 октября 2018

Для этого вам понадобятся сервисные работники :) Сервисные работники - это обычно, как большинство других сайтов уведомляют об обновлениях.

Для ember их настройка довольно проста, у нас есть ember-service-worker для запуска кэширования и манифеста, а затем у нас есть ember-service-worke-update-notify для автоматического уведомления об обновлениях активов.

Хотя здесь есть PR: https://github.com/topaxi/ember-service-worker-update-notify/pull/3 для уведомления об обновлениях более автоматизированным способом - текущий способ уведомляет об обновлении только при обновлении и загрузке кэшированных ресурсов.

Я недавно открылэтот PR, потому что я думаю, с @pollingInterval={{5000}}, это был бы идеальный интервал для проверки обновлений, где каждые 5 секунд мы видим, есть ли обновление.

Надеюсь, это поможет!

...