在Cake Build中隐藏服务密码

Mig*_*ura 4 c# cakebuild

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

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

Cake有没有标准的方法来做到这一点?

Gar*_*ark 9

最简单的方法是将该密码存储为运行构建的系统上的环境变量.然后,您可以使用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"));
}
Run Code Online (Sandbox Code Playgroud)

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

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

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