Description
PM2 module to poll source repository, execute pre/post hook and gracefull reload the application using pm2.
Install
pm2 install pm2-gitpoll
Configure
-
pollInterval
(Defaults to6000000
) : Polling period in milliseconds. -
apps
: Contains definition of applications in JSON :{ "APP_NAME" : { "prehook" : "npm install --production && git submodule update --init", "posthook" : "echo done", "errorhook" : "echo error", } }
-
APP_NAME
is the name of the api in pm2 and in the url defined on github or gitlab (eg: :http://127.0.0.1:8888/APP_NAME
). -
prehook
is the shell command executed in thecwd
(care of this) of the app after thepull
and before thegracefullReload
. -
posthook
is the shell command executed in thecwd
(care of this) of the app after making thegracefullReload
. -
errorhook
is the shell command executed in thecwd
(care of this) of the app if an error occurs. -
nopm2
if set to true, we will not reload the application using pm2 (default tofalse
) -
cwd
if provided we don't resolve the cwd using pm2 and will take this value (defaults toundefined
)
-
(can specify branch)
mean that you can use a addional configuration to run the posthook on a specific branch
How to set these values ?
After having installed the module you have to type :
pm2 set pm2-gitpoll:key value
To set the apps
option and since its a json string, i advice you to escape it to be sure that the string is correctly set (using this kind of tool).
e.g:
-
pm2 set pm2-gitpoll:pollInterval 10000
(poll the repositiories every 10 seconds) pm2 set pm2-gitpoll:apps "{\"APP_NAME\":{\"secret\":\"supersecret\",\"prehook\":\"npm install --production && git submodule update --init\",\"posthook\":\"echo done\",\"errorhook\":\"echo error\"}}"
Uninstall
`pm2 uninstall pm2-gitpoll