在 GitLab CI/CD 上成功部署后通知刷新 ember.js 应用程序

Notify to refresh ember.js application after successful deployment on GitLab CI/CD

我们正在使用令人敬畏的 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 就无法识别新的更改。因此我们需要刷新页面才能更新。

这个想法的另一个缺点是,如果最终用户正在处理事务,我们无法承受刷新页面的代价。所以我的想法是在更新可用时发出通知以类似于任何移动应用程序刷新页面,他们只需转到 link 并手动单击更新。

现在这个问题缩小为:

我们如何向 运行 ember 应用程序发送信号,以便我们可以在更新可用时提示刷新页面的通知 (成功后 CI/CD发货)?

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

对于 ember,设置它们相当简单,我们有 ember-service-worker to get your caching and manifest going, and then we have ember-service-worke-update-notify 用于资产更新的自动通知。

不过,这里有一个 PR:https://github.com/topaxi/ember-service-worker-update-notify/pull/3 以更自动化的方式通知更新——当前的方式仅在刷新和加载缓存资产时通知更新。

我最近打开了这个 PR,因为我认为 @pollingInterval={{5000}} 是检查更新的理想时间间隔,每 5 秒,我们就会看到是否有更新。

希望对您有所帮助!