【发布时间】:2018-08-13 07:02:17
【问题描述】:
我有一个 Aurelia CLI 应用程序,它使用 CLI 和 Gulp 来构建。我被要求启用一个功能,我们传递我们正在构建的分支的名称并从中确定一个环境。我希望在我的 gulp 任务中做到这一点。我想我可以通过我们的持续集成来实现它,但是,如果可能的话,我想在 gulp 中实现它。这可能吗?
【问题讨论】:
标签: aurelia
我有一个 Aurelia CLI 应用程序,它使用 CLI 和 Gulp 来构建。我被要求启用一个功能,我们传递我们正在构建的分支的名称并从中确定一个环境。我希望在我的 gulp 任务中做到这一点。我想我可以通过我们的持续集成来实现它,但是,如果可能的话,我想在 gulp 中实现它。这可能吗?
【问题讨论】:
标签: aurelia
您可以将任何自定义参数传递给 Aurelia CLI 并从您的构建任务中获取它们。
假设你打电话给au run --branch master
您可以像这样从任务中获取值:
import { CLIOptions } from "aurelia-cli";
const branch = CLIOptions.getFlagValue('branch')
这是你需要的吗?
【讨论】:
我们使用 Visual Studio Team Services 进行持续集成。我在我们的定义中添加了一个 Powershell 脚本构建步骤,根据传递的分支的名称,它会编写一个具有正确环境名称的变量。然后,我计划在我的定义中添加一个额外的构建步骤,仅在构建主分支时运行——在没有测试框架的情况下重建我的源代码。
我们用来写变量的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)
我认识到我的解决方案超出了我所要求的受众的范围。对此感到抱歉。
【讨论】: