【问题标题】:Publish build artifacts step fails, when using fileshare (TFS 2015)使用文件共享 (TFS 2015) 时,发布构建工件步骤失败
【发布时间】:2016-11-27 13:59:59
【问题描述】:

TFS 版本:14.102.25423.0 (Tfs2015.Update3)

在我的构建定义中,当我设置 Path 的参数时

发布构建工件步骤

工件类型:文件共享

\VSALM\共享

在幕后,此构建步骤执行递归调用的 node.js 脚本函数,但存在一个错误,该函数在尝试创建放置文件夹时一遍又一遍地重复自己**。 失败的 node.js 脚本是

mkdir.js

并位于构建代理文件夹下方:

agent\tasks\PublishBuildArtifacts\1.0.28\node_modules\shelljs\src\mkdir.js

失败函数的名称是:

mkdirSyncRecursive

错误信息:

016-07-23T21:22:02.3703397Z shell.js:内部错误 2016-07-23T21:22:02.3703397Z RangeError:最大调用堆栈大小 超过

--> 堆栈溢出 当我进入像

这样的绝对路径时

c:\workspaces\share

我收到此错误:

2016-07-23T21:03:07.5727256Z shell.js:内部错误 2016-07-23T21:03:07.5727256Z 错误:EEXIST:文件已存在,mkdir 'C:\workspaces\share'

解决方法

当我将放置文件夹设置为(转义的网络共享路径)时:

\\\\VSALM\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)

然后构建步骤成功,但文件不会放在共享路径下。 在我的情况下,它们被丢弃在这里:

C:\VSALM\share\MyBuildDefinition\20160723.7\drop

我不知道为什么它不适用于我的共享设置为:

C:\工作区\share

但是当我在中创建网络共享时它可以工作

C:\drop\share

并将我的构建定义中的放置文件夹路径设置为:

\\\\drop\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)

问题: 有人知道如何修复这个脚本吗?

【问题讨论】:

  • 构建代理上是否存在共享文件夹?
  • 是的,共享文件夹在构建代理上。
  • 共享文件夹是可以访问的。

标签: node.js build visual-studio-2015 azure-devops tfs-2015


【解决方案1】:

当您选择“文件共享”类型时,“发布构建工件”任务会将构建输出发布到共享网络路径。当找不到共享网络路径时,通常会出现“超出最大调用堆栈大小”错误。请检查您输入的“路径”是否正确,是否可以从构建代理访问。格式通常如下:

\\hostnameoripaddress\sharedfolder

当您输入带有“\\\\”前缀的路径时,任务会将输出复制到构建代理所在驱动器的根目录。例如,您的构建代理工作文件夹放在 C 盘,当您指定“\\\\VSALM\share”作为路径时,它将文件复制到“C:\VSALM\Share”文件夹(它将创建文件夹如果路径不存在)。

【讨论】:

  • 你刚刚重复了我上面问题的发现。我以这种方式尝试过\\hostname\sharedFolder,但我得到了提到的错误。堆栈大小超出,因为递归函数没有结束。共享是可访问的。当我在像C:\share 这样的构建代理上设置本地路径时,它也不起作用。我收到错误:File already exists。我会说这绝对是一个错误。
  • 但是通过这个 hack,我至少可以放入本地文件夹 ;-)
  • @Legends 当我尝试使用我身边的共享网络文件夹时,我没有看到任何问题。可否尝试设置共享网络可以被“所有人”临时访问,看看是否可以成功完成任务?
  • 但是如果我输入一个常规的网络路径,这意味着一个格式正确的,而不是一个转义的,我得到调用堆栈大小超出错误。如果我输入错误或无效的网络路径,我会收到类似“找不到路径”的消息 :-)。顺便说一句,在共享文件夹的安全下添加每个人就可以了!但我不希望每个人都有访问权限......所以这是一个授权问题。在这种情况下,我会期待某事。像“拒绝访问”:-)
  • @Legends 这个好像是老账号创建的文件造成的,能不能试试新建一个定义看看能不能用?
猜你喜欢
  • 2018-11-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2015-12-23
  • 2022-01-17
  • 2018-11-04
  • 2018-07-04
相关资源
最近更新 更多