回滚 pm2 部署到特定提交

Rollback pm2 deploy to specific commit

我想知道如何使用 pm2 "rollback" 最近的代码更改。

我们团队的变更流程要求我们制定 "rollback" 计划以防部署出现问题。我们通常只是记录回滚计划将 git checkout CHANGESET 返回到以前版本的代码,同时我们修复问题并在开发中对其进行测试。

如何使用 pm2 实现类似的回滚?我们新的部署过程是 pm2 deploy production,我的 ecosystem.json 包含在下面。目前 UAT 和生产都使用 origin/master 作为 "ref"。我在想也许可以使用标签或其他东西,但不确定最好的方法。也许我应该继续在这些罕见的回滚情况下做 git checkout COMMIT,但寻找其他想法。

{
  "apps": [{ blah... }],
  "deploy": {
    "UAT": {
    "user": "USER_HERE",
    "host": ["IP_HERE", "IP_HERE"],
    "ref": "origin/master",
    "repo": "git@github.com:USER/REPO.git",
    "path": "/home/USER/node",
    "post-deploy": "bash ./update.sh"
  },
  "production": {
    "user": "USER_HERE",
    "host": ["IP_HERE", "IP_HERE"],
    "ref": "origin/master",
    "repo": "git@github.com:USER/REPO.git",
    "path": "/home/USER/node",
    "post-deploy": "bash ./update.sh"
  }
}

工具pm2 deploy提供命令revert。所以,你可以这样做:

pm2 deploy ecosystem.json revert

这 "rollback" 您的应用到之前的部署。您还可以指定上次部署恢复到多少。

另请参阅命令 [ref] 结合 listcurrprev:

https://github.com/Unitech/PM2/blob/0.14.7/ADVANCED_README.md#deployment-options