Node.js 是否已将文件更改为运行节点应用程序的远程服务器?此外,您的脚本解决方案可能必须分为两个脚本:一个脚本首先停止运行节点应用程序,然后Jenkins scp将源文件更改为远程服务器,第二个脚本运行其余命令。我是否需要在运行node app的远程服务器上设置gi

Node.js 是否已将文件更改为运行节点应用程序的远程服务器?此外,您的脚本解决方案可能必须分为两个脚本:一个脚本首先停止运行节点应用程序,然后Jenkins scp将源文件更改为远程服务器,第二个脚本运行其余命令。我是否需要在运行node app的远程服务器上设置gi,node.js,jenkins,deployment,gitlab,Node.js,Jenkins,Deployment,Gitlab,是否已将文件更改为运行节点应用程序的远程服务器?此外,您的脚本解决方案可能必须分为两个脚本:一个脚本首先停止运行节点应用程序,然后Jenkins scp将源文件更改为远程服务器,第二个脚本运行其余命令。我是否需要在运行node app的远程服务器上设置git repo并配置Jenkins以推送到它?@ace我在回答中提到了如何scp文件。scp适用于没有Jenkins或Git的远程服务器。 pipeline { agent any triggers { pollS


是否已将文件更改为运行节点应用程序的远程服务器?此外,您的脚本解决方案可能必须分为两个脚本:一个脚本首先停止运行节点应用程序,然后Jenkins scp将源文件更改为远程服务器,第二个脚本运行其余命令。我是否需要在运行node app的远程服务器上设置git repo并配置Jenkins以推送到它?@ace我在回答中提到了如何scp文件。scp适用于没有Jenkins或Git的远程服务器。
pipeline {
    agent any
    triggers {
        pollSCM('* * * * *')
    }
    stages {
        stage("deploy") {
            steps {
            sh "scp"
            }
        }
    } 
}
run these commands on remote server on which node app is running

cd ~/mynodeproj 

pm2 stop mynodeproj 

copy project source files from Jenkins server to remote server where 
node app is running 

npm install 

export NODE_ENV=production 

pm2 start mynodeproj
sh 'scp -r script user@server:/path/server'
sh 'ssh user@server /path/server/script'
$ tree .rocketeer/
.rocketeer/
├── config.php
├── hooks.php
├── logs
│   ├── develop--20170613.log
│   ├── develop--20170614.log
│   ├── develop--20170616.log
│   ├── staging--20180323.log
│   ├── staging--20180324.log
│   ├── staging--20180326.log
│   ├── production--20180223.log
│   ├── production--20180226.log
│   ├── production--20180227.log
│   ├── production--20180227.log
│   └── custom-environment--20180328.log
├── paths.php
├── remote.php
├── scm.php
├── stages.php
└── strategies.php
#!/bin/bash -el
cd $JENKINS_HOME/app-deploy/app-socketio
rocketeer deploy --on="develop"
'connections'      => [
    'develop' => [
        'host'      => '35.xx.xx.xx',
        'username'  => 'ec2-user',
        'password'  => '',
        'key'       => '/var/lib/jenkins/.ssh/foo.pem',
        'keyphrase' => '',
        'agent'     => '',
        'db_role'   => true,
    ],
    'staging' => [
        'host'      => '34.xx.xx.xx',
        'username'  => 'ec2-user',
        'password'  => '',
        'key'       => '/var/lib/jenkins/.ssh/bar.pem',
        'keyphrase' => '',
        'agent'     => '',
        'db_role'   => true,

    ],
    'production' => [
        'host'      => '18.xx.xx.xx:63612',
        'username'  => 'ec2-user',
        'password'  => '',
        'key'       => '/var/lib/jenkins/.ssh/woot.pem',
        'keyphrase' => '',
        'agent'     => '',
        'db_role'   => true,
    ],
    'custom-environment' => [
        'host'      => '13.xx.xx.xx:63612',
        'username'  => 'ec2-user',
        'password'  => '',
        'key'       => '/var/lib/jenkins/.ssh/test.pem',
        'keyphrase' => '',
        'agent'     => '',
        'db_role'   => true,
    ],
],
'after'  => [
    'setup'   => [],
    'deploy'  => [
            "pm2 delete mynodeproj", //Delete old pm2 task
            "pm2 start src/mynodeproj.js", //Start new mynodeproj
    ],
    'cleanup' => [],
],