我的设置如下我已经托管了代理,作为第一个作业从作为 docker 容器启动的自托管代理复制文件
托管管道由管道“运行”休息 API 触发:
https ://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest -6.0
这就是身体现在的样子:
"resources": {
"repositories:": {
"self": {
"refName": "refs/heads/my_branch"
}
}
}
它工作得很好。
现在托管管道的一部分如下所示:
- job: self_hosted_connect
timeoutInMinutes: 10
pool: Default
steps:
- task: CopyFiles@2
inputs:
SourceFolder: '/home/copy_dir'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
另外,工作很棒。
我的问题是:
我喜欢在“运行”rest API 中发送另一个包含 SourceFolder 路径的参数,以便 CopyFiles 任务将是动态的并且没有硬编码 SourceFolder 路径
当我从 docker 运行自托管代理时,我如何告诉自托管代理将目录包含在其工作目录之外?所以管道不会因错误而失败:
#[错误]未处理:未找到源文件夹:/home/copy_dir
更新 我将请求更新为:
{
"resources": {
"repositories:": {
"self": {
"refName": "refs/heads/my_branch"
}
}
},
"templateParameters": {
"Folderpath":"{/home/foo/my_dir}"
}
}
但我收到一个错误:
{
"$id": "1",
"innerException": null,
"message": "Unexpected parameter 'Folderpath'",
"typeName": "Microsoft.Azure.Pipelines.WebApi.PipelineValidationException, Microsoft.Azure.Pipelines.WebApi",
"typeKey": "PipelineValidationException",
"errorCode": 0,
"eventId": 3000
}