我有一个库,我用FAKE构建,打包并推送到NuGet。工作正常。
现在,我想做所有这些,包括"推"部分,在连续模式下,通过Travis CI。我知道存在安全问题,但似乎我可以通过将NuGet API密钥放在Travis环境变量中来安全地(至少在原则上)这样做,所以它是not available to external pull requests,并且只在建立一个专门的专门分支。
当FAKE遇见特拉维斯时,问题出现了。
paket.exe
命令行将作为FAKE的输出发出,并使用我的NuGet API密钥完成。我知道我可以通过将其重定向到/dev/null
(.travis.yml
)来禁用FAKE的整个输出,但我希望保留大多数输出,只需用密钥隐藏该特定部分。
我在PaketPushParams
structure中找不到任何相关参数,谷歌也没有找到任何相关参数。下一步是查看FAKE源代码,看看输出是否有条件,但我想我先问。我无法成为第一个达到此目标的人。 : - )
答案 0 :(得分:2)
我也没有找到Google的答案,但我确实知道在哪里查看FAKE源代码,所以我继续这样做。
实际运行相关任务看起来像Paket.Push helper calls ExecProcess
。 ExecProcess
最终调用ExecProcessWithLambdas
来完成工作,ExecProcessWithLambdas
中的行将进程名称和参数输出到FAKE日志checks the enableProcessTracing
variable first,并且不会输出进程如果该变量为false,则为name和arguments。 enableProcessTracing
变量为undocumented, but mutable,因此您应该可以设置它。我自己还没有尝试过,但原则上你应该可以这样做:
ProcessHelper.enableProcessTracing <- false // Logging off
// Do security-sensitive work here
ProcessHelper.enableProcessTracing <- true // Logging back on for rest of build
这样做你需要的吗?