我正在使用Visual Studio Build in Azure Pipeline构建C#应用程序。
我的解决方案包含多个项目(ManagerWeb和WebAPI)。
我想分别发布两个单独的Artifact ManagerWeb和WebAPI。
所有必需的文件都在>>> a = [(1, 2, 3), (1, 2, 3), (1, 2, 3)]
>>> avgs = [sum(vals)/len(a) for vals in zip(*a)]
>>> avgs
[1.0, 2.0, 3.0]
中。
如何指定可以使用“两个分开的工件”的图案?
示例在第一个工件中以Build.ArtifactStagingDirectory
和在另一个工件中为WebAPI
的所有文件名。
ArtifactStaging目录中的文件名如下
ManagerWeb
任何帮助都是有意义的。
预先感谢。
答案 0 :(得分:1)
添加PowerShell任务以创建两个文件夹并将文件移动到该文件夹:
cd $(Build.ArtifactStagingDirectory)
$files = dir
mkdir WebAPI
mkdir ManagerWeb
ForEach($file in $files)
{
if($file.FullName.Contains("WebAPI"))
{
mv $file.FullName -Destination WebAPI
}
else
{
mv $file.FullName -Destination ManagerWeb
}
}
然后在“发布路径”字段中添加文件夹:
对于WebApi工件:
$(Build.ArtifactStagingDirectory)/WebAPI
对于ManagerWeb工件:
$(Build.ArtifactStagingDirectory)/ManagerWeb
答案 1 :(得分:1)
添加两个用于复制的 Copy Files 步骤;
$(Build.ArtifactStagingDirectory)\ManagerWeb
$(Build.ArtifactStagingDirectory)\WebAPI
然后有两个 Publish Artifact 步骤;
$(Build.ArtifactStagingDirectory)\ManagerWeb
发布为ManagerWeb $(Build.ArtifactStagingDirectory)\WebAPI
发布为WebAPI 我对此进行了模拟,并按如下所示导出了YAML;
pool:
name: Hosted VS2017
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)\ManagerWeb'
inputs:
SourceFolder: 'your/path/here/ManagerWeb'
TargetFolder: '$(Build.ArtifactStagingDirectory)\ManagerWeb'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)\WebAPI'
inputs:
SourceFolder: 'your/path/here/WebAPI'
TargetFolder: '$(Build.ArtifactStagingDirectory)\WebAPI'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ManagerWeb'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\ManagerWeb'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: WebAPI'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\WebAPI'