【问题标题】:Effecting the environment flag from within the build从构建中影响环境标志
【发布时间】:2018-08-13 07:02:17
【问题描述】:

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

【问题讨论】:

    标签: aurelia


    【解决方案1】:

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

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

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

    import { CLIOptions } from "aurelia-cli";

    const branch = CLIOptions.getFlagValue('branch')

    这是你需要的吗?

    【讨论】:

    • 不是,但是,我找到了另一种方法。我将在我的解决方案中添加一个主要评论。同样感谢您的回答,因为这也是我最终做的部分因素。
    【解决方案2】:

    我们使用 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)
    

    我认识到我的解决方案超出了我所要求的受众的范围。对此感到抱歉。

    【讨论】:

    • 有趣,感谢您分享您的最终解决方案:)
    • @Travis Brown 如果您的解决方案对您有用,可以将其标记为答案。这有助于其他人找到它。
    • @kettch 可以 - 我只需要wait 22 hours to do so :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2016-09-07
    • 2011-04-08
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    相关资源
    最近更新 更多