
根据答案,我提出了一个完整的解决方案。
首先,Mac从站无法使用SSH启动,必须使用交互式会话手动启动,然后始终保持登录状态。在我的情况下,奴隶实际上是无头的,所以这是进一步的复杂化。
这是我用来使所有这些 *** 作都可用的步骤。
在配置了唯一标签的Jenkins主服务器上创建一个新的从属节点(我选择“ xpre-unittests”),并将启动方法设置为“通过Java Web Start启动从属代理”。
通过屏幕共享(VNC)登录到Mac从属设备并启动从属代理。就我而言,我无法从浏览器启动从属服务器,可能是因为我的浏览器没有运行小程序所需的Java插件。因此,我使用了命令行
javaws http://{jenkins-host}/computer/{slave-name}/slave-agent.jnlp。为了使此 *** 作更可靠,我将此命令配置为在每次交互式登录计算机时都在“系统偏好设置”,“用户和组”,“登录项”下自动运行。退出屏幕共享而不注销Mac从站。即使没有人实际使用计算机,这也可以使运行从属代理的交互式会话保持活动状态。
为了使单元测试在不提示用户的情况下运行,我还必须
sudo DevToolsSecurity-enable在Mac从属计算机上运行。这使Xpre可以与iOS模拟器进行交互,而无需每次都交互式地请求许可。
如果从属计算机重新引导,则必须有人登录Mac从属服务器才能使该从属代理再次运行。因此,我还使基于SSH的从服务器保持活动状态。我将Jenkins作业拆分为多个单独的作业,以构建应用程序和运行单元测试。用于构建应用程序的作业被配置为在基于SSH的从属服务器上运行,而用于运行单元测试的作业被配置为在上述交互式从属节点上运行。这样,如果交互式从属设备出现故障,则仅会影响单元测试,而不会构建产品。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)