- Я нажимаю без замены изменений от локального в удаленное репо < /li>
Веб-крюк информирует мой сервер (который имеет скрипт PHP прослушивания - Сценарий PHP запускает сценарий Bash , который: 1) запускает установку NPM , 2) Запуск NPM Run Build и 3) запускает rsync , чтобы скопировать содержимое сборки в живую папку в Интернете
Есть ли способ, чтобы сценарий Bash ждал установки и сборка? Я попытался добавить паузу 120 после операторов установки и сборки, и я пробовал цепочку команд, например, что -то вроде
npm install && npm run build && rsync ......
Ни один из них не достигает цели, когда сценарий запускается через php , но оба работают отлично, когда я работаю вручную ..
Соответствует соответствующему Строка из скрипта PHP , который вызывает скрипт Bash :
$commandOutput = shell_exec("/bin/bash ./sync.sh --repo=" . $hook["repo"] . " --branch=" . $hook["branch"] . " --subdomain=" . $subdomain);
< /code>
$hook["repo"] - это имя репо, $ hook ["branch"] - текущая филиал, а $ subdomain - это субдомен, над которым обрабатывается (у меня есть несколько настроек).
Сценарий Bash начинается с поднятия репо, ветви и субдомена, а затем делает различные команды git и npm . Соответствующие строки: < /p>
if [[ ${repo} && ${branch} && ${subdomain} ]]; then
git -C /path/${repo}/ checkout ${branch}
git -C /path/${repo}/ fetch
git -C /path/${repo}/ pull origin ${branch}
npm --prefix /path/${repo}/ install
npm --prefix /path/${repo}/ run build;
rsync -auv /path/${repo}/htdocs/* /path/${subdomain}/htdocs;
else
echo "repo, branch and subdomain were not provided, I will not do anything.";
fi
Подробнее здесь: https://stackoverflow.com/questions/794 ... build-runs
Мобильная версия