Как опубликовать определенные файлы с помощью задачи «Опубликовать сборку артефакта» - PullRequest
0 голосов
/ 30 мая 2019

Я создаю приложение C # с использованием Visual Studio Build In Azure Pipeline.

Мое решение Содержит несколько проектов (ManagerWeb & WebAPI).

Я хочу опубликовать два отдельных Artifact ManagerWeb и WebAPI соответственно.

enter image description here Все необходимые файлы находятся в Build.ArtifactStagingDirectory.

Как я могу указать шаблон, с помощью которого я могу получить два отдельных артефакта? Пример Все имя файла с WebAPI в первом артефакте и ManagerWeb в другом.

Имя файла из каталога ArtifactStaging:

Something.Manager.WebAPI.deploy.cmd
Something.Manager.WebAPI.deploy-readme.txt
Something.Manager.WebAPI.SetParameters.xml
Something.Manager.WebAPI.SourceManifest.xml
Something.Manager.WebAPI.zip

Something.ManagerWeb.deploy.cmd
Something.ManagerWeb.deploy-readme.txt
Something.ManagerWeb.SetParameters.xml
Something.ManagerWeb.SourceManifest.xml
Something.ManagerWeb.zip

Любая помощь будет заметна.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Добавление двух копий файлов шагов, которые копируют;

  • ManagerWeb файлов в $(Build.ArtifactStagingDirectory)\ManagerWeb
  • файлов WebAPI в $(Build.ArtifactStagingDirectory)\WebAPI

Затем выполните два шага Опубликовать артефакт ;

  • Опубликовать $(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'
1 голос
/ 30 мая 2019

Добавьте задачу 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...