Microsoft DevOps 测试代理"Cannot publish artifacts from OSX or Linux"



我正在运行一台本地Microsoft DevOps服务器,以及两台运行测试代理的独立机器,用于夜间自动化测试。我最近配置了第三个测试代理,但在发布作业使用的构建作业期间发布工件时遇到了问题。

相同的作业在两个现有的测试框上完美地运行,但总是在构建完成后和工件发布步骤期间抛出此错误:

2020-09-01T2:19.32544245Z##[节]开始:发布工件:bin_drop 2020-09-01T2:19.25488130Z===============================================2020-09-01T2:11:32:29.2548196Z任务:复制并发布内部版本Artifacts 2020-09-01T2:19.32548235Z描述:[已弃用]使用"复制文件"任务和"发布生成项目"任务2020-09-01T2:19.32548273Z版本:1.0.322020-09-01T2:19.32548311Z作者:微软公司2020-09-01T2:19.32548365Z帮助:更多信息2020-09-01T21:32:29.2548404Z===============================================2020-09-01T2:1:30.7956739Z***运行设置2020-09-01T2:1:30.8306609Z##[error]无法从发布工件OSX或Linux到文件共享。您可以将"工件类型"更改为"服务器",使用Windows,或使用"复制文件","通过SSH复制文件",或"FTP上载"任务。2020-09-01T21:32:30.8378696Z##[节]完成:发布工件:bin_drop

在试图解决这个问题时,我确实考虑过使用发布构建工件任务,但它的描述说它会有同样的问题(例如,在Linux上不工作等(。要明确的是,最新的测试框与其他两个运行windows 10的测试框相同,它不是运行Linux或OSX。

在查看微软的测试代理代码时(我想我在这里找到了正确的GitHub包(,他们似乎在使用Node.js来检测代理运行的平台,如果它不等于"win32",那么他们就会抛出这个错误。

因此,我导航到代理中的Node.js实例:\代理\外部\节点\bin\代理\外部\节点10\bin

并运行此代码,并验证它确实从两个Node.js实例返回了"win32":

const os = require('os'); 
console.log(os.platform()); 

据我所知,第三个盒子上的配置与其他两个Windows 10测试盒子相同。这不应该抛出这个错误。有人知道为什么测试代理可能得到"win32"以外的值,所以它认为它没有在windows上运行,并为我抛出这个错误吗?

编辑:我确实尝试删除并重新配置了机器上的代理。在所有的文本框中,代理都以交互模式运行,因此可以运行GUI测试。

此外,我最近不得不重建另外两个测试箱中的一个(在我已经在努力处理第3个测试箱之后(,重建工作进展顺利。完全重新安装了所有的东西,它和以前一样工作得很完美。

我能够通过从工作的测试机器复制代理来解决这个问题。似乎从DevOps服务器下载的最新代理本身就有一个错误

从工作机器上复制代理,并从中剥离所有工作和配置数据,然后将其安装在新的第三台测试机器上,就产生了一台工作机器。

我在与第三台机器作斗争时重建的测试机器是成功的,因为我没有进行完全的重新格式化。只是重新安装了操作系统,然后使用数据驱动器中的安装文件在其上完成了所需软件的安装,所以我从未从DevOps服务器下载过新的代理。

最新更新