我正在使用shipit.js将我的nodejs应用程序部署到Ubuntu 16.04服务器。它工作正常,但最近我开始收到以下错误:
./node_modules/shipit-cli/bin/shipit production deploy start
Running 'deploy:init' task...
Finished 'deploy:init' after 1.46 ms
Running 'deploy:fetch' task...
Deleting existing workspace "/tmp/github-monitor"
Running "rm -rf /tmp/github-monitor" on local.
Create workspace "/tmp/github-monitor"
Workspace created.
Initialize local repository in "/tmp/github-monitor"
Running "git init" on local.
@ Initialized empty Git repository in /private/tmp/github-monitor/.git/
Repository initialized.
List local remotes.
Running "git remote" on local.
Update remote "git@github.com:myusername/myapp.git" to local repository "/tmp/github-monitor"
Running "git remote add shipit git@github.com:myusername/myapp.git" on local.
Remote updated.
Fetching repository "git@github.com:myusername/myapp.git"
Running "git fetch shipit --prune --depth=1 && git fetch shipit --prune "refs/tags/*:refs/tags/*"" on local.
@ From github.com:myusername/myapp
@ * [new branch] develop -> shipit/develop
@ * [new branch] login -> shipit/login
@ * [new branch] master -> shipit/master
Repository fetched.
Checking out commit-ish "undefined"
Running "git checkout undefined" on local.
@ error: pathspec 'undefined' did not match any file(s) known to git.
'deploy:fetch' errored after 39 s
Error: Command failed: git checkout undefined
error: pathspec 'undefined' did not match any file(s) known to git.
at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
我使用以下版本:
node:v8.11.1 npm:5.6.0 shipit-deploy:^ 2.5.1 shipit:4.0.1
这是我的shipit.js
文件:
module.exports = shipit => {
require('shipit-deploy')(shipit);
shipit.initConfig({
default: {
workspace: '/tmp/github-monitor',
deployTo: '~/apps/myapp',
repositoryUrl: 'git@github.com:myusername/myapp.git',
ignores: ['.git', 'node_modules'],
rsync: ['--del'],
keepReleases: 2,
key: '~/.ssh/mykey',
shallowClone: true,
},
production: {
servers: 'me@myserver.org',
},
});
shipit.task('start', function() {
shipit.log('Installing...');
let promise1 = shipit.remote('cd ~/apps/myapp/current && yarn');
let promise2 = promise1.then(function(res) {
shipit.log('Building...');
shipit.remote('cd ~/apps/myapp/current && npm run build');
});
let promise3 = promise2.then(function(res) {
shipit.log('Copying Environment File...');
shipit.remote('cp ~/apps/myapp/shared/.env ~/apps/myapp/current');
});
promise3.then(function(res) {
shipit.log('Starting...');
shipit.remote(
'pm2 delete server && pm2 start ~/apps/myapp/current/server.js --name "server"'
);
});
});
};
我真的很难过是什么导致了这一点。我最近将本地环境从节点v8.0.0升级到8.11.1,但这似乎不是原因。任何帮助理解这个问题都将不胜感激。
答案 0 :(得分:0)
我需要在shipit.initConfig
中指定一个分支。
shipit.initConfig({
default: {
workspace: '/tmp/github-monitor',
deployTo: '~/apps/myapp',
repositoryUrl: 'git@github.com:myusername/myapp.git',
ignores: ['.git', 'node_modules'],
rsync: ['--del'],
keepReleases: 2,
key: '~/.ssh/mykey',
shallowClone: true,
branch: 'master',
},
production: {
servers: 'me@myserver.org',
},
});