代码之家  ›  专栏  ›  技术社区  ›  Kjell Rilbe

如何根据已构建的分支设置具有不同环境变量的devops build for creat react应用程序项目?

  •  0
  • Kjell Rilbe  · 技术社区  · 6 年前

    我们有一个create react app项目,它从环境中获取一些构建参数(例如auth0 config),这意味着这些环境变量会影响react构建。

    我们正在为这个项目开发一个Azure DevOps构建管道,虽然在管道的变量页面上定义变量很困难,但是如何根据正在构建的分支设置变量并不明显。

    例如,我们想要 dev 分支在Auth0中使用或开发租户,而发布和主分支应该在Auth0中使用或生产租户(相同的变量,两个不同的值)。

    是否有文件/支持的方法?或者一些“最佳实践”?

    我已经读到您可以修改PowerShell脚本中的变量,例如 this post . 这是最好的方法吗?脚本如何检查正在构建的分支,以选择正确的值集?

    我还发现DevOps有一个变量组的概念。我还没有读过它,但是对于每个分支(或分支模式)定义一个变量组并让脚本选择要应用的组,这是一个好方法吗?怎么用?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Leo Liu    6 年前

    如何根据已构建的分支设置具有不同环境变量的devops build for creat react应用程序项目?

    现在,恐怕在构建定义中使用power shell脚本任务来获取源分支名称,然后根据分支名称设置环境变量是一个不错的选择。因为在构建管道中还不支持嵌套变量。

    PowerShell脚本如下:

    $branch = $Env:Build_SourceBranchName
    Write-Host "Current branch is $branch"
    if ($branch -eq "Dev")
    {
      Write-Host ("##vso[task.setvariable variable=testvar]testvalue")
    }
    else (($branch -eq "master") -or (($branch -eq "release")))
    {
      Write-Host ("##vso[task.setvariable variable=testvar2]testvalue2")
    }
    

    检查 Logging Command 在构建过程中了解更多详细信息。

    此外,对于 variable groups ,我们可以使用每个环境的vsts变量组 释放 定义,但不适用于 建造 定义。检查 this thread 了解一些细节。

    希望这有帮助。