Unitech / pm2-deploy

Deploy part of PM2
http://pm2.keymetrics.io/docs/usage/deployment/
MIT License
178 stars 72 forks source link

What the reason of symlinked current directory? #183

Open heleg opened 4 years ago

heleg commented 4 years ago

Please, help me understand: Why do we have a source directory that is always the same and then link it to current? It seems useless to me: https://github.com/Unitech/pm2-deploy/blob/master/deploy#L256

First, we run cd for directory that was already linked, do the stuff there, then symlink it once again. It seems like we should have different release directories or something.

What is the problem behind it? I would make a build somewhere else and then symlink it to current and then restart pm2 to have a zero-downtime restart. But I constrained to make a build on a post-deploy hook which temporarily broke my server.

krunkosaurus commented 4 years ago

Probably has to do with pm2 deploy revert rollback feature.

leafac commented 4 years ago

I spent some time puzzling over this and this is the best answer I’ve found. The current symlink seems to be there for compatibility with other tools. Plus, it’s how it’s done by this other tool on which pm2-deploy seems to be based.

It doesn’t have to do with revert, which is implemented by checking out a previous commit.