我正在尝试在 OSX 上使用 Jenkins 在本地设置 CI,但是在尝试执行 shell 命令时遇到一些问题。以下是我尝试在 Jenkins 配置中运行的命令:
cd /Users/username/projectname
dotnet build HD-Project.sln
但是,当我尝试构建项目时,出现以下错误:
Building in workspace /Users/Shared/Jenkins/Home/workspace/HD-Build
[HD-Build] $ /bin/sh -xe
/Users/Shared/Jenkins/tmp/jenkins2699993427980474696.sh
+ cd /Users/username/projectname
+ dotnet build HD-Project.sln
/Users/Shared/Jenkins/tmp/jenkins2699993427980474696.sh: line 3:
dotnet: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
任何帮助将不胜感激,谢谢。
我成功了,并且能够通过 Jenkins 通过执行的 shell 成功运行
dotnet
命令。
要运行
dotnet
命令,需要在 Jenkins 构建服务器上安装 .NET SDK。有关如何安装 .NET SDK 的说明可在此处找到:https://www.microsoft.com/net/learn/get-started/macos 适用于所有操作系统 - Linux、MacOS 和 Windows。
出现这种情况是因为安装包没有将 dotnet 可执行位置添加到 PATH 环境变量中。这个问题在https://github.com/dotnet/core/blob/master/cli/known-issues.md#users-of-zsh-z-shell-dont-get-dotnet-on-the-中提到path-after-install,但显然它不仅仅影响 zsh 用户。您需要手动添加此路径。
在我的例子中,路径是 /usr/local/share/dotnet,所以我运行(从命令行):
export PATH=/usr/local/share/dotnet:$PATH
对于使用 Docker 容器的用户,请参阅本文:https://medium.com/@nestor.panu/building-an-asp-net-6-application-on-docker-based-jenkins-d6c8aaf94756
基本上:
MSBuild
和 .NET SDK Support
.NET SDK Support
libicu-dev
。我遇到了同样的问题,我想向您提供对我有用的步骤。
首先你需要了解这个问题:
#步骤1:运行以下命令来执行一些bash命令
#第2步:找到dotnet路径
运行以下命令获取 dotnet 路径
查找/-name dotnet -type f 2>/dev/null
#步骤 3:将路径添加到 $PATH 变量
运行以下命令:
导出 PATH=$PATH:/var/jenkins_home/tools/io.jenkins.plugins.dotnet.DotNetSDK/dotnetsdk/
现在您可以运行“echo $PATH”。然后就可以发现dotnet的新路径已经添加了
但是存在一个问题,因为默认情况下 docker 容器是短暂的,一旦退出 bash,新添加的路径将不会被持久化,因此要修复它,我们需要持久化它。
#步骤 4:将 dotnet 路径保留到 $PATH 变量
#第5步:重启容器
现在是时候尝试一下,您将能够使用 dotnet,而无需获取可执行文件的完整路径。
希望您觉得它有用。