Azure devops 如何使用PublishPipelineArtifact@1使用构建脚本
我已经让我的yaml运行我的构建(这是一个伪脚本),我想将构建脚本的各种输出作为工件发布 我已经让它工作了一半,但我不知道如何得到一些特定的文件夹输出Azure devops 如何使用PublishPipelineArtifact@1使用构建脚本,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我已经让我的yaml运行我的构建(这是一个伪脚本),我想将构建脚本的各种输出作为工件发布 我已经让它工作了一半,但我不知道如何得到一些特定的文件夹输出 - task: PublishPipelineArtifact@1 displayName: Publish Report inputs: pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3
- task: PublishPipelineArtifact@1
displayName: Publish Report
inputs:
pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3.1
artifactName: MyReport
它实际上似乎是采取一些任意文件夹(这是我的管道名称,下面是子文件夹)
是的,我的应用程序在里面,但所有东西都在里面,非常奇怪
我改变路径…它发布相同的东西,即所有东西 我在azure devops中使用了yaml工具,似乎就是这样做的
- task: PublishPipelineArtifact@1
displayName: Publish Report
inputs:
targetPath: '$(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1'
artifact: 'MyReport'
publishLocation: 'pipeline'
这是可行的,我并不特别喜欢知道代理将存储库放在一个名为“s”的文件夹中,但除此之外,它是可行的
这同样有效
targetPath: 'ReportProject/bin/Release/netcoreapp3.1'
(我试图使Build.sources目录工作,但失败)当您使用引用生成代理中的文件夹时。您应该知道它们映射到的确切文件夹。请参见以下自托管代理的示例:
$(Pipeline.Workspace)
映射到c:\agent\\u work\1
$(Agent.BuildDirectory)
也映射到c:\Agent\\u work\1
$(Build.ArtifactStagingDirectory)
映射到a
文件夹c:\agent\\u work\1\a
$(Build.BinariesDirectory)
映射到b
文件夹c:\agent\\u work\1\b
$(Build.SourcesDirectory)
与映射到s
文件夹c:\agent\\u work\1\s
PublishPipelineArtifact任务和其他任务的默认工作目录是$(System.DefaultWorkingDirectory)
(即c:\agent\\u work\1\s
)
因为您的项目文件夹位于s
文件夹下的文件夹ReportProject
。这就是为什么targetPath:'ReportProject/bin/Release/netcoreapp3.1'
起作用的原因。因为它等于$(System.DefaultWorkingDirectory)/ReportProject/bin/Release/netcoreapp3.1
,并且
$(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1
,以及$(Build.sourcesddirectory)/ReportProject/bin/Release/netcoreapp3.1
。这些都可以使用。通过使用Build.sources目录
您应该可以获得包含“s”文件夹的路径(请参阅)似乎对我不起作用##[错误]路径不存在:D:\a\1\s\$(PipelineBuild.SourcesDirectory)\bin\Release\netcoreapp3.1
targetPath: 'ReportProject/bin/Release/netcoreapp3.1'