dwyl / learn-devops

🚧 Learn the craft of "DevOps" (Developer Operations) to Deploy your App and Monitor it so it stays "Up"!
GNU General Public License v2.0
418 stars 172 forks source link

pm2: conflict with ecosystem.config.js #51

Closed SimonLab closed 6 days ago

SimonLab commented 6 years ago

I had an issue while using pm2 for deployement: The master branch already had a ecosystem.config.js but when I tried to create a new PR this issue appears: image

I tried to rebase/merge my branch with master but it was already up to date I figure out that the issue was due to the git pull command defined in predeploy:

module.exports = {
  apps: [{
    name: "appname",
    script: "./bin/www"
  }],
  deploy: {
    // "production" is the environment name
    production: {
      // SSH key path, default to $HOME/.ssh
      key: "./deploy_key",
      // SSH user
      user: "dev",
      // SSH host
      host: ["ip-address-host"],
      // SSH options with no command-line flag, see 'man ssh'
      // can be either a single string or an array of strings
      ssh_options: "StrictHostKeyChecking=no",
      // GIT remote/branch
      ref: "origin/master",
      // GIT remote
      repo: "git@github.com:repo_app",
      // path on the server
      path: "/home/dev",
      // Pre-setup command or path to a script on your local machine
      "pre-setup": "ls -la",
      // Post-setup commands or path to a script on the host machine
      // eg: placing configurations in the shared dir etc
      "post-setup": "ls -la",
      // pre-deploy action
      "pre-deploy":"git pull",
      // "pre-deploy-local": "echo 'This is a local executed command'",
      // post-deploy action
      "post-deploy": "npm install && pm2 startOrRestart ecosystem.config.js"
    },
  }
}

To resolve this issue I replace git pull by git fetch --all; git reset --hard origin/master. This will force the pre-deploy to get the master version and discard any conflict occuring with the branch.

This solution is working in my case because I only want to deploy the master branch, however I'm not 100% sure why the conflict occurs in the first place.

nelsonic commented 6 years ago

@SimonLab thanks for opening this issue! It's a bit of a strange error message considering the file did exist on the branch. It might be worth opening this issue on the PM2 GitHub: https://github.com/Unitech/pm2/issues to see if anyone else knows what the cause was.

nelsonic commented 6 days ago

Closing as we are no longer using PM2. ✅