ember.js - 在 GitLab CI/CD 上成功部署后通知刷新 ember.js 应用程序
问题描述
我们正在使用很棒的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 之后)?
解决方案
为此,您需要服务人员 :) 服务人员通常是大多数其他站点通知更新的方式。
对于 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 秒,我们会查看是否有更新。
希望这可以帮助!
推荐阅读
- c# - c# html文件中的正则表达式匹配部分
- html - 布尔玛面板,如何在面板内嵌套容器?
- powershell - 比较两个始终显示相等的 VMHostVirtualSwitches
- docker - Docker 内部的 Docker 卷?
- android - 如何使用 Google Drive Android API 实例化 DriveId/DriveFolder
- r - 有效地迭代行以动态/顺序填充变量向下行
- javascript - 角度路由:替换组件
- javascript - Pass child state value to Parent state array
- node.js - 从 Google Logging API 解码 protoPayload
- material-ui - Material-ui选择分组