通过詹金斯执行shell脚本

时间:2020-02-16 15:52:34

标签: shell unix jenkins mv

我有一个非常简单的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,然后将扩展名为jssvgcss的文件移动到该文件夹​​。

当我直接自己执行此脚本时,它运行良好。

问题是我希望脚本由詹金斯执行。因此,我在构建中配置了“执行外壳”步骤。执行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 :(得分: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

这很好用。仍然是某种解决方法,但它的作用完全相同,因此对我来说很好。