如何将PublishPipelineArtiact@1与构建脚本一起使用 [英] how to use PublishPipelineArtifact@1 with build script

查看:13
本文介绍了如何将PublishPipelineArtiact@1与构建脚本一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经让YAML运行我的生成(这是一个伪脚本),并且我希望将生成脚本中的各种输出作为工件发布。

我已经让它正常工作了一半,但我不太清楚如何获取要输出的特定文件夹。

  - task: PublishPipelineArtifact@1
    displayName: Publish Report
    inputs:
      pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3.1
      artifactName: MyReport

它实际上似乎是获取某个任意文件夹(这是我的管道的名称,下面是子文件夹)

subfolders 
TestResults
a
b
s

是的,我的应用程序在里面,但是所有东西都在里面,非常奇怪。

我更改路径.它发布相同的内容,即所有内容!

推荐答案

当您使用predefined variables引用生成代理中的文件夹时。您应该知道它们映射到的确切文件夹。请参阅下面的自托管代理示例:

$(Pipeline.Workspace)映射到c:agent\_work1

$(Agent.BuildDirectory)也映射到c:agent\_work1

$(Build.ArtifactStagingDirectory)映射到a文件夹c:agent\_work1a

$(Build.BinariesDirectory)映射到b文件夹c:agent\_work1

$(Build.SourcesDirectory)与映射到s文件夹c:agent\_work1s

$(System.DefaultWorkingDirectory)相同 PublishPipelineArtiact任务和其他任务的默认工作目录是$(System.DefaultWorkingDirectory)(即c:agent\_work1s)

由于您的项目文件夹驻留在s文件夹下的ReportProject文件夹中。这就是targetPath: 'ReportProject/bin/Release/netcoreapp3.1'有效的原因。因为它等于$(System.DefaultWorkingDirectory)/ReportProject/bin/Release/netcoreapp3.1,并且 $(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1$(Build.SourcesDirectory)/ReportProject/bin/Release/netcoreapp3.1。这些都会起作用。

这篇关于如何将PublishPipelineArtiact@1与构建脚本一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆