/pm2-gitpoll

poll git for updates and ask pm2 to reload the application for you

Primary LanguageJavaScriptOtherNOASSERTION

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 to 6000000) : 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 the cwd (care of this) of the app after the pull and before the gracefullReload.
    • posthook is the shell command executed in the cwd (care of this) of the app after making the gracefullReload.
    • errorhook is the shell command executed in the cwd (care of this) of the app if an error occurs.
    • nopm2 if set to true, we will not reload the application using pm2 (default to false)
    • cwd if provided we don't resolve the cwd using pm2 and will take this value (defaults to undefined)

(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