从构建中影响环境标志

Effecting the environment flag from within the build

我有一个 Aurelia CLI 应用程序,它结合使用 CLI 和 Gulp 来构建。我被要求启用一项功能,在该功能中我们传递正在构建的分支的名称并从中确定环境。我希望在我的 gulp 任务中做到这一点。我想我可以通过我们的持续集成来实现它,但是,如果可能的话,我想在 gulp 内部进行。这可能吗?

您可以将任何自定义参数传递给 Aurelia CLI,并从您的构建任务中获取它们。

假设你打电话给 au run --branch master

您可以像这样从任务中获取值:

import { CLIOptions } from "aurelia-cli";

const branch = CLIOptions.getFlagValue('branch')

这是你需要的吗?

我们使用 Visual Studio 团队服务进行持续集成。我在我们的定义中添加了一个 Powershell 脚本构建步骤,根据传递的分支的名称,它会写入一个具有正确环境名称的变量。然后,我计划在我的定义中添加一个额外的构建步骤,仅在构建 master 分支时 运行 - 在没有测试框架的情况下重建我的源代码。

我们用来写变量的powershell脚本如下:

if ($env:BUILD_SOURCEBRANCHNAME -eq "qa"){
 Write-Output ("##vso[task.setvariable variable=auenv]" + "stage")
}
elseif ($env:BUILD_SOURCEBRANCHNAME -eq "master")
{    
 Write-Output ("##vso[task.setvariable variable=auenv]" + "prod")
}
else
{
 Write-Output ("##vso[task.setvariable variable=auenv]" + "dev")
}

然后,该用的时候:

au build --env $(auenv) --version $(Build.BuildNumber) --testable

最后,我们在没有测试框架的情况下构建

au build --env $(auenv) --version $(Build.BuildNumber)

我知道我的解决方案超出了我要求的受众的范围。抱歉。