在 Cake Build 中隐藏服务密码

Hide services passwords in Cake Build

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

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

是否有使用 Cake 执行此操作的标准方法?

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

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

这就是我们如何 store/use 与 Cake 本身的构建过程相关的秘密。示例见此处:

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

取自此 link 的是以下代码片段:

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

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

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

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