О боже, почему это так сложно?Сейчас я потратил 3 дня, пытаясь заставить работать эту, казалось бы, простую хрень.
Мне нужно: - установить npm на CI-сервер (работает) - запустить тесты (работает) - построить угловой интерфейс (работает)- отправить код на сервер через rsync (работает) - ssh на сервер (работает) - - и установить npm (не работает. Умирает из-за предупреждений npm, я думаю) - - перезапустить процесс pm2 (не работает, так как нетэлегантный способ сказать запуск или перезапуск)
На этапе развертывания у меня есть этот скрипт в интерфейсе UI
rsync -avz --exclude 'node_modules' ~/clone/
root@xxx.xxx.xxx.xxx:/root/my-project/
ssh root@xxx.xxx.xxx.xxx cd /root/my-project && bash ./postDeploy.sh
Тогда скрипт postDeploy.sh
выглядит так:
#!/bin/sh
export PATH=$PATH:/usr/local/bin
npm install --silent &> /dev/null
/usr/local/bin/pm2 stop --silent keystone &> /dev/null
/usr/local/bin/pm2 start keystone.js 2> /dev/null
Я пытаюсь проглотить ошибки с помощью этого трюка.&> /dev/null
В проекте есть несколько уязвимостей, которые, к сожалению, находятся глубоко внутри основного модуля и не могут быть исправлены мной, поэтому мне нужен npm, чтобы в этом случае было тихо.
Тогда есть вещь PM2, которая немного раздражает.Мне нужно выполнить команду остановки, но если служба не работает, она не будет работать, поэтому мне снова нужно проглотить ошибки.Команда запуска, вероятно, в порядке.
Я думаю, что, может быть, сейчас происходит то, что, поскольку я проглатываю все программы выполнения сценариев выходного кода, допускает сбой?
Я пытался использовать инструмент для полуготовой отладки, но он волшебным образом спрашивает у меня пароль, когда я пытаюсь войти в систему ... А?
Также @codeship было бы удивительно, если бы 80% полезных статей, проиндексированных Google, не приводили к мертвым страницам на вашем сайте ...