Crear copy de origen separada al implementar el código con PM2

Estoy usando PM2 para implementar una aplicación Node JS en EC2. Estoy usando un file ecosystem.config.js con las configuraciones siguientes:

deploy : { production : { user : 'node', host : 'instance.us-east-2.compute.amazonaws.com', ref : 'origin/master', //repo : 'https://github.com/myid/myrepo.git', repo : 'git@github.com:myid/myrepo.git', path : '/var/www/production', 'post-deploy' : 'npm install --prefix ./src/server && pm2 startOrRestart ./deployment/aws/ecosystem.config.js --env production' } 

}

Estoy ejecutando estos dos commands para la implementación real:

 1. pm2 deploy ecosystem.config.js production setup 2. pm2 deploy ecosystem.config.js production 

El primer command activa el Git Clone y la configuration del código fuente en la carpeta / var / www / production / source y el segundo realmente inicia la aplicación Node JS.

Quiero configurar el deployment de tal forma que si el código fuente ya está descargado (desde un logging anterior) a / var / www / production / source, la próxima vez que ocurra un check-in, primero clone el código a un carpeta alternativa, digamos / var / www / production / source2 y una vez hecho esto, desactiva la instancia de Node JS existente y cambia al Node JS de la nueva carpeta.

Entiendo que ya debería funcionar de esta manera, y cuando miro la carpeta / var / www / production veo que en realidad hay un enlace simbólico llamado 'actual' que apunta a 'fuente', lo que indica que está destinado a rastrear el 'actual 'live version y PM2 pueden manejar más de una ruta de código.

 ubuntu@ip:/var/www/production$ ls -l total 8 lrwxrwxrwx 1 node node 26 Aug 29 01:36 current -> /var/www/production/source drwxrwxr-x 4 node node 4096 Aug 27 10:53 shanetworking drwxrwxr-x 8 node node 4096 Aug 29 00:42 source ubuntu@ip:/var/www/production$ 

Sin embargo, no puedo descifrar cómo usar eso, porque cada vez que trato de llamar al primer command de arriba simplemente suelta con un error:

 pm2 fatal: destination path ' already exists and is not an empty directory 

No pude encontrar nada relacionado con este tema en la documentation de PM2 tampoco. Cualquier consejo sería muy apreciado.