Я запускаю команду на travis, чтобы вычислить точку ветвления от мастера текущей текущей ветви (гарантированно не быть мастером).Запуск child_process.exec не работает на travis, а не локально
Выполнение этой команды:
function execute(cmd, cb) {
exec(cmd, function (err, stdout, stderr) {
if(err) {
console.error('err', err);
}
if(stderr) {
console.error('err', err);
}
cb(stdout.split('\n').join(''));
});
}
execute('git rev-parse --short HEAD', cb)
бежит, и возвращает мне короткую ша моей текущей ветви просто отлично на Трэвиса.
Когда я бегу
var command = "bash -c 'diff -u <(git rev-list --all bf2a1b7b7cf97f5df0618830f63d535db1a5dca6) "+
"<(git rev-list --first-parent master)' "+
"| sed -ne 's/^ //p' | head -1";
execute(command, cb);
Это возвращает меня именно то, что я хочу на местном уровне, но и на Travis вызывает ошибку. Я ничего не получаю от команды console.error в команде execute, просто: err null
.
Поскольку это работает локально, даже в отдельно стоящем ГОЛОВЕ, как и в случае с travis, я предполагаю, что это как-то связано с окружающей средой. Какая версия git работает на Travis?
Есть ли что-нибудь, что вы можете придумать, чтобы это не сработало? Является ли bash недоступным? Основное различие между этими и другими git-командами, которые работают, это часть bash -c
и замещение процесса.
Вы можете увидеть страницу сборки здесь https://travis-ci.org/VisualTesting/test-example/builds/54427942