从 PowerShell 发布 PipelineArtifact
Publish PipelineArtifact from PowerShell
有没有办法从 PowerShell 脚本 Publish Pipeline Artefact?
我想避免为发布文件创建额外的管道任务。
而不是:
- 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"
也许构建代理提供了一个可以在 PowerShell@2
任务中使用的 API,例如:Agent.Plugins.PipelineArtifact.PublishPipelineArtifactTask::PipelineArtifactTaskPluginBaseV1
有什么想法吗?
(ps: 问题好像有点过时了)
如果您希望它成为脚本的一部分,您可以使用 Logging Commands:
##vso[artifact.associate]artifact location
- 创建工件link,工件位置必须是文件容器路径,VC路径或UNC共享路径。
##vso[artifact.upload]local file path
- 将本地文件上传到文件容器文件夹,如果提供了工件名称,则创建工件。
您将它与 Write-Host
一起使用,例如:
Write-Host "##vso[artifact.upload containerfolder=test;artifactname=drop;]c:\test.zip"
另一种选择是不使用PublishPipelineArtifact@1
任务,还有更多easier and shorter syntax:
- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
artifact: WebApp
有没有办法从 PowerShell 脚本 Publish Pipeline Artefact?
我想避免为发布文件创建额外的管道任务。
而不是:
- 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"
也许构建代理提供了一个可以在 PowerShell@2
任务中使用的 API,例如:Agent.Plugins.PipelineArtifact.PublishPipelineArtifactTask::PipelineArtifactTaskPluginBaseV1
有什么想法吗?
(ps:
如果您希望它成为脚本的一部分,您可以使用 Logging Commands:
##vso[artifact.associate]artifact location
- 创建工件link,工件位置必须是文件容器路径,VC路径或UNC共享路径。##vso[artifact.upload]local file path
- 将本地文件上传到文件容器文件夹,如果提供了工件名称,则创建工件。
您将它与 Write-Host
一起使用,例如:
Write-Host "##vso[artifact.upload containerfolder=test;artifactname=drop;]c:\test.zip"
另一种选择是不使用PublishPipelineArtifact@1
任务,还有更多easier and shorter syntax:
- publish: $(System.DefaultWorkingDirectory)/bin/WebApp
artifact: WebApp