[英]Run powershell build step in VSTS agent installed on mac?
我在Mac上安装了VSTS构建代理,以构建xamarin iOS项目。 在我添加powershell构建步骤之前,构建工作正常。 即使我为Mac安装了powershell( https://github.com/PowerShell/PowerShell )并重新安装了代理,VSTS仍抱怨它没有能够运行构建的代理。
找不到具有以下功能的代理:DotNetFramework,Xamarin.iOS,npm
当我禁用构建步骤时,构建工作就可以了。
是否可以在Mac上运行Powershell构建步骤?
如果确定已安装DotNetFramework,则可以转到“代理队列”设置,并为其添加自定义功能,即所谓的功能。
那应该允许它运行,但是如果代理无法实际找到它们,则此后可能会失败,但是它也可能成功,因此值得尝试。
不,您不能在Mac上使用PowerShell任务,仅支持节点任务。
当前在PowerShell3中编写的PowerShell任务,Mac上不支持。 您可以在http://visualstudio.uservoice.com上要求团队实施此操作
这是在我也有评论中解决问题的已接受答案的跟进。
感谢spatialguy发布并找到此问题的简单解决方案。 我有与KeithA45相同的问题:
问题:如果您想做同样的事情,但又将参数传递给Bash脚本,然后又将参数传递给Powershell脚本,该怎么办?
我找到了解决方案,首先,我修改了外壳脚本任务,以包含要传递给powershell脚本的Visual Studio Team Services(VSTS)环境变量。
接下来,我通过稍微修改已接受的answer所提到的shell脚本,将参数传递给被调用的powershell脚本。
#!/bin/bash
powershell ./Version.ps1 $1 $2
最后,在powershell脚本中,我使用如下param捕获通过传递的参数:
param([string]$version, [string]$path)
现在,我可以使用变量$ version和$ path,这些变量包含在VSTS中输入的原始参数以满足我的powershell脚本的需要。
事情似乎已经向前发展,因为今天我从Azure DevOps构建管道成功地在Mac自托管代理上运行了PowerShell@2
任务。
通过在使构建排队时检查“启用系统诊断”,日志向我显示该任务本身找到了在Homebrew的帮助下在Mac上安装的PowerShell Core(pwsh)的路径(brew cask brew cask install powershell
请参阅https: //docs.microsoft.com/fr-fr/powershell/scripting/install/installing-powershell-core-on-macos )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.