首页 > 解决方案 > 在 GitLab CI/CD 上成功部署后通知刷新 ember.js 应用程序

问题描述

我们正在使用很棒的Gitlab CI/CD 工作流程,并且对这个过程很满意。每天都会发生很多合并请求,我们希望确保我们的应用程序在管道作业成功时实时更新。

例如,只要接受合并请求,我们的主分支也可以部署在登台上。这是我们deploy_staginggitlab-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 之后)

标签: ember.jscontinuous-integrationgitlabgitlab-cicontinuous-deployment

解决方案


为此,您需要服务人员 :) 服务人员通常是大多数其他站点通知更新的方式。

对于 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 秒,我们会查看是否有更新。

希望这可以帮助!


推荐阅读