Выполнить сценарий оболочки через Jenkins - PullRequest
1 голос
/ 16 февраля 2020

У меня очень простой сценарий оболочки build-dev.sh. Вот как это выглядит:

#artifact build script
echo "Running application build for DEV environment"

ng build --deploy-url "js/" --base-href "/my-app-ui/" --configuration=dev
mkdir dist/my-app-ui/js
mv ./dist/my-app-ui/*.{js,svg,css} ./dist/my-app-ui/js

Создает приложение Angular, затем создает папку js и затем перемещает файлы с расширениями js, svg и css в эту папку.

Когда я сам выполняю этот скрипт, он отлично работает.

Проблема в том, что я хочу, чтобы сценарий выполнялся Дженкинсом. Поэтому я настроил шаг «Выполнить оболочку» в моей сборке. Как только задание Jenkins выполнено, оно не выполняется при выполнении третьей строки сценария (команда mv).

mv: cannot stat './dist/my-app-ui/*.{js,svg,css}': No such file or directory
Build step 'Execute shell' marked build as failure

Я думаю, это может быть связано с тем, что у меня есть .*{js,svg,css} в моем сценарии.

Подскажите, пожалуйста, что я делаю не так?

1 Ответ

0 голосов
/ 17 февраля 2020

Ну, я до сих пор не уверен, почему это не работает, но проблема в использовании скобок - {js,svg,css}. Я заменил команду mv на три строки:

mv ./dist/my-app-ui/*.js ./dist/my-app-ui/js
mv ./dist/my-app-ui/*.svg ./dist/my-app-ui/js
mv ./dist/my-app-ui/*.css ./dist/my-app-ui/js

Это прекрасно работает. Это все еще какой-то обходной путь, но он делает то же самое, поэтому он прекрасно работает для меня.

...