Запуск npm через hook Git, на хостинге Timeweb.
Редакция автор: stain- Стандарт
post-receive
должен быть запускаемым, ну или другой ваш hook.chmod +x post-receive
- Первым в файле нужно указывать каким шелом все будет запускаться. На timeweb sh не взлетит будет ошибка. используйте
#!/bin/bash
.
3.По ssh все пути и алиасы прописанные в~/.bash_profile
не работают. Нужно прописать их непосредственно в файлpost-receive
.
Пример:
cd public_html
export PATH=~/.utils/nodejs/bin:~/.sh:$PATH
alias node='~/.utils/nodejs/bin/node'
alias npm='~/.utils/nodejs/bin/npm'
Вывод возможной ошибки при исполнении npm, цифра 2 означает вывод вместо результата обработки, ошибки в файл если они есть, чтобы можно было понять причину.
npm -v 2> _npm.log
Ну и пример разворачивания или обновления пакетов с помощью npm на сайте.
if [ -e "package.json" ]; then
if [ -d "node_modules" ]; then
~/.utils/nodejs/bin/npm update
else
~/.utils/nodejs/bin/npm install
fi
fi
То же для composer длинные тире двойные тире
if [ -e "composer.json" ]; then
if [ -d "vendor" ]; then
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar update --no-dev
else
/opt/php7.2/bin/php -d memory_limit=500M ~/.utils/composer.phar install --no-dev
fi
fi
Перед всем этим делом пропуская выше только второй пункт #!/bin/bash
, стандартный хук для разворачивания репозитория
cd ..
GIT_DIR='.git'
git reset --hard
Еще есть такой момент, но не в курсе повлиял ли он как нибудь. место расположения вашего скаченного node.js , для установки глобально пакетов(у меня другой путь.
npm config set prefix '~/.npm-global'
Статья
Про отлов ошибок через перенаправление типа такого npm -v 2> _npm.log
Статья про перенаправление ввода-вывода.
Комментариев: 0