[1183312] После долгих и плодотворных обсуждений в комментариях, а также после [1183614] по этой ссылке[1183615] пользователю удалось решить проблему добавления
в опции [1183618]rsync[1183619].
, а затем попробовать записать в эту директорию. Обратите внимание, что если есть подкаталоги, вы должны сделать это рекурсивно с:
Если это успешно, то вы можете начать постепенно удалять разрешения, и это поможет вам точно определить проблему.
Убедитесь, что пользователь jenkins уже является членом группы apache с помощью
В каком режиссере (ах | у) вы хотите это сделать? Это не понятно из вашего сценария. Попробуйте перейти в каталог 1 , например:
#!/bin/sh
GIT=`which git`
REPO_DIR=/home/username/Sites/git/repo/
cd ${REPO_DIR}
${GIT} add --all .
${GIT} commit -m "Test commit"
${GIT} push git@bitbucket.org:username/repo.git master
Или вы можете выполнить git add --all / path / to / git / repo / files
.
Правка :
Запуск сценария из командной строки не обязательно аналогичен запуску его из cron; см. этот вопрос и ответ: Что такое «рабочий каталог», когда cron выполняет задание , особенно ответ Жиля .
1 Некоторые идеи о том, как проверить успешность выполнения команды
Я столкнулся с той же проблемой, и вот как я ее исправил:
Во-первых, попытайтесь выяснить, в чем заключается ошибка вашего push. Вы можете получить журнал ошибок, добавив 2> & 1
в конец вашего скрипта.В вашем случае это будет:
$ {GIT} push (скрытый) мастер >> $ {LOG} 2> & 1
Толчок не работает изнутри оболочки по нескольким причинам. Проверьте следующие критерии:
ваше имя пользователя и пароль правильно сохранены / кэшированы. Вы можете напрямую нажать на git URL, включая ваш User / Pass, только для тестирования (НЕ забудьте удалить их). например:
$ {GIT} push --repo (hidden)
Убедитесь, что Git не жалуется на SSL (вы можете временно игнорировать его, добавив эту команду перед вашим push
в вашем скрипте:
export GIT_SSL_NO_VERIFY = 1
Если это не так, если git push
выполняется в правильном каталоге, вы можете перейти в желаемый каталог перед выполнением сценария путем добавления предварительного шага в задание cron
следующим образом:
* / 20 * * * * cd / home / '$ {USER}' / Sites / git / bitbucket / kb && /home/username/Sites/git/repo/commit.sh