4

我正在使用 Cake build 来构建和部署一个项目,但在我的脚本中,我有一些我不想公开的服务密码。

是否可以从我不会推送到 Github 的外部文件(可能是 JSON?)中读取密码?所以这个文件只会在我的电脑里。

有没有标准的方法来用蛋糕做到这一点?

4

1 回答 1

11

最简单的方法是将该密码作为环境变量存储在您正在运行构建的系统上。从那里,您可以使用EnvironmentVariable别名来请求该值,然后在您的脚本中使用它:

http://cakebuild.net/api/Cake.Common/EnvironmentAliases/F508FA2B

这就是我们存储/使用与 Cake 本身的构建过程相关的秘密的方式。请参阅此处的示例:

https://github.com/cake-build/cake/blob/develop/build/credentials.cake#L15

从此链接获取以下代码片段:

public static BuildCredentials GetGitHubCredentials(ICakeContext context)
{
    return new BuildCredentials(
        context.EnvironmentVariable("CAKE_GITHUB_USERNAME"),
        context.EnvironmentVariable("CAKE_GITHUB_PASSWORD"));
}

我们正在读取两个环境变量,用户名和密码,然后在脚本执行中使用它们。

注意:变量的存在context是因为我们在辅助函数中进行工作,其中主 Cake Context 作为参数传入。Environment如果您在其中一项任务中直接访问别名,则不需要这样做。

假设您正在使用某种形式的持续集成,那么可能有一种方法可以通过配置文件或用户界面以安全的方式指定这些环境变量的值。

于 2017-03-13T10:55:02.980 回答