Запуск npm через hook Git, на хостинге Timeweb.

Редакция автор: stain
  1. Стандарт post-receive должен быть запускаемым, ну или другой ваш hook. chmod +x post-receive
  2. Первым в файле нужно указывать каким шелом все будет запускаться. На 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
Статья про перенаправление ввода-вывода.

Categorized in: tools

Комментариев: 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.