Publi sh PipelineArtifact из PowerShell - PullRequest
0 голосов
/ 14 июля 2020

Есть ли способ Publi sh Pipeline Artefact из сценария PowerShell?

Я бы не хотел создавать дополнительную задачу конвейера для публикации файлов.

Вместо:

      - task: PublishPipelineArtifact@1
        displayName: 'publish azuredeploy.parameters.json'
        inputs:
          targetPath: $(System.DefaultWorkingDirectory)/work
          artifactName: azuredeploy parameters

Я бы предпочел сделать что-то вроде этого:

      - task: PowerShell@2
        displayName: 'replace ARM parameters'
        inputs:
          targetType: inline
          pwsh: true
          script: |
              # input
              $manifest = ReadObject "work/manifest.json"

              # process
              ReplaceArmTemplateParameters $manifest.modules

              # output
              PublishPipelineArtefact -targetPath "work/manifest.json" -artefactName "azuredeploy-parameters"


Возможно, агент сборки предоставляет API, который можно использовать в задаче PowerShell@2, например: Agent.Plugins.PipelineArtifact.PublishPipelineArtifactTask::PipelineArtifactTaskPluginBaseV1

Есть идеи?

(ps: этот вопрос кажется немного устарело)

1 Ответ

1 голос
/ 14 июля 2020

Если вы хотите, чтобы он был частью скрипта, вы можете использовать Команды ведения журнала :

  1. ##vso[artifact.associate]artifact location - Создать ссылку артефакта, местоположение артефакта должен быть путь к контейнеру файла, V C путь или UN C общий путь.

  2. ##vso[artifact.upload]local file path - Загрузить локальный файл в папку с файловым контейнером, создать артефакт, если предоставлено имя артефакта.

Вы используете его с Write-Host, например:

Write-Host "##vso[artifact.upload containerfolder=test;artifactname=drop;]c:\test.zip"

Другой вариант - не использовать задачу PublishPipelineArtifact@1, есть еще более простой и короткий синтаксис :

- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
  artifact: WebApp
...