我有一个非常简单的shell脚本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}
的事实有关。
你能告诉我我在做什么错吗?
答案 0 :(得分:0)
好吧,我仍然不确定为什么它不起作用,但是问题出在方括号-{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
这很好用。仍然是某种解决方法,但它的作用完全相同,因此对我来说很好。