如何从管道访问环境变量并将其传递到发布管道

时间:2020-04-22 22:45:55

标签: shell vue.js command-line azure-devops sentry

我有一个可以自动构建和部署的应用程序。

当前流量:

Git push-> Azure(构建)管道创建工件-> Azure Release管道拾取工件,并使用“复制文件”将其部署在DigitalOcean服务器上,然后进入命令行。

我需要在命令行中进行一些自动配置,这些自动配置需要每个构建都唯一的环境变量。

如何从管道访问环境变量并将其以某种方式传递到发布管道,以便可以在命令行的命令中使用它?

用于导出环境变量的NPM命令:

  "releasecustom": "export VUE_APP_SENTRY_RELEASE=$(UniqueValue) && node 
   scripts/createreleasesentry.js && npm run build && node scripts/finalizereleasesentry.js",

1 个答案:

答案 0 :(得分:2)

我有点担心开箱即用不支持此功能。您可以做的就是使用powershell任务(or use extension for this)在文件中写下您的值。

New-Item -Path $(Build.ArtifactStagingDirectory)/vardrop -Name "variables.txt" -ItemType "file" -Value "This is a text string."

然后,您必须将其发布为工件。

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)/vardrop'
    artifactName: vardrop

接下来,您需要下载工件并读取此文件并设置变量(使用powershell任务)。

这里有一个示例,但是如果文件中的值多于一个值,则需要拆分并分别分配。

echo "##vso[task.setvariable variable=dp]$(cat $(System.ArtifactsDirectory)/vardrop/variables.txt)"