【问题标题】:Notify to refresh ember.js application after successful deployment on GitLab CI/CD在 GitLab CI/CD 上成功部署后通知刷新 ember.js 应用程序
【发布时间】:2018-10-11 08:02:54
【问题描述】:

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

例如,只要接受合并请求,我们的主分支也可以部署在登台上。这是我们在gitlab-ci.yml 上的deploy_staging 工作示例。

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.js continuous-integration gitlab gitlab-ci continuous-deployment


    【解决方案1】:

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

    对于 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 秒查看一次是否有更新。

    希望这会有所帮助!

    【讨论】:

    • @Roel 如果这对你有用,请随意投票/单击复选标记:)(这些点鼓励我继续帮助人们)((......我不觉得自我价值在互联网点...))
    • 当然!在我测试了 ember-service-worker 之后,我现在正在理解它:) 感谢您的指点
    猜你喜欢
    • 2021-02-11
    • 1970-01-01
    • 2017-07-29
    • 2017-09-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多