我们有一个create-react-app项目,该项目从环境中获取了一些构建参数(例如Auth0配置),这意味着这些环境变量会影响react构建。
我们正在为该项目开发Azure DevOps构建管道,虽然可以在管道变量页面上轻松定义变量,但是如何根据正在构建的分支来不同地设置变量并不明显。
例如,我们希望dev
分支可以在Auth0中使用或开发租户构建,而发布分支和主分支应该在Auth0中使用或生产租户构建(相同变量,两个不同的值)。
是否有记录/支持的方法?还是一些“最佳实践”?
我了解到您可以通过PowerShell脚本修改变量,例如就像在this post中一样。那是最好的方法吗?脚本如何检查正在建立的分支,以选择正确的值集?
我还发现DevOps具有变量组的概念。我还没有读过它,但是在每个分支(或分支模式)中定义一个变量组并让脚本选择要应用的组是一个好方法吗?怎么样?
答案 0 :(得分:1)
如何根据创建的分支为具有不同环境变量的creat-react-app项目设置DevOps构建?
这时,恐怕在构建定义中使用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变量组用于 release 定义,但不适用于 build 定义。检查this thread以获得一些详细信息。
希望这会有所帮助。