Неустранимый: Невозможно создать '/home/circleci/project/.git/index.lock': файл существует - PullRequest
0 голосов
/ 28 января 2020

Я выполняю шаг в своем рабочем процессе, который выполняет git checkout branchname сразу после встроенного шага CircleCI - checkout, и я получаю следующую ошибку: fatal: Unable to create '/home/circleci/project/.git/index.lock': File exists.

Ветвь branchname уже существует. Он создается как часть этого шага, все, что yarn addFilesToCommit делает, это запускает шаг сборки, который добавляет пару файлов JSON в папку, которая отслеживается. Если branchname не существует, сборка выполняется, только при последующих запусках она завершается с ошибкой.

git checkout -b branchname | git checkout branchname
yarn addFilesToCommit
git add .
git commit -m "Sync"
git push --force --set-upstream origin branchname

Я пытался сделать rm -rf /home/circleci/project/.git/index.lock и rm -rf /home/circleci/project/.git/index, как упоминалось в некоторых других публикациях но безуспешно.

Если я запускаю сборку и ssh в нее, кажется, что команда запускается без проблем. Куда я здесь не так?

1 Ответ

2 голосов
/ 28 января 2020

замена вашей первой строки на git checkout -b branchname && git checkout branchname

pipe не гарантирует последовательного выполнения ( см. Здесь ), поэтому вы получаете эту ошибку, в основном, ваш checkout вызывается еще до того, как ваш checkout -b закончен

...