Linux环境的Jenkins构建NetCore项目出现的问题--- dotnet: 未找到命令
实验的机器是CentOS 7.9 。
Jenkins里自动编译.netcore项目的步骤:
1、Linux安装netcore 的sdk
可以看这篇文章https://www.cnblogs.com/puzi0315/p/15534427.html
2、在Linux里测试下效果:
dotnet --info
dotnet --version
一切正常。
3、在Jenkins里创建任务测试,“构建”部分的代码如下:
echo '============dotnet --info信息================' dotnet --info dotnet --version
则报错:信息如下:
/tmp/jenkins11995557596560651774.sh:行9: dotnet: 未找到命令
/tmp/jenkins11995557596560651774.sh:行10: dotnet: 未找到命令
分析原因,
(1)sh脚本不支持dotnet命令,我写了个.sh脚本执行发现是正常了。这个点排查。
(2)JenKins调用的sh的版本所致。解决方案是在命令的最上部加一句话,指定使用bash 。(这种方案被证实也是不行的)
#!/bin/bash -il
完整的脚本如下:
#!/bin/bash -il echo '============查看打包环境================' pwd ls echo $PATH whoami echo '============dotnet --info信息================' dotnet --info dotnet --version
结果还是报错,
bash: dotnet: 未找到命令
bash: dotnet: 未找到命令
这就比较纠结了,问题还没有解决。又找了好多天,终于发现了个解决方案。
解决方案如下:
4、将linux的环境变量配置到jenkins中。
(1)、在linux中输入 echo $PATH
(2)、找到jenkins的系统配置-->环境变量
全局变量里设置PATH值即可。
“构建”里的代码还是如下图,再次构建就成功了。脚本不需要第一句的那句话也可以的。
其实我也不知道为啥就好了。难道是JenKins调用的sh所使用的路径,只用了其中一个路径所致?
作者:沐雪
文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
为之网-热爱软件编程 http://www.weizhi.cc/