F# 如何抑制部分假输出?

F# 如何抑制部分假输出?,f#,travis-ci,f#-fake,paket,F#,Travis Ci,F# Fake,Paket,我有一个图书馆,我用伪造、打包和推送的方式建立。很好 现在,我想通过Travis CI在连续模式下完成所有这些,包括“推送”部分。我知道存在安全问题,但我似乎可以通过将NuGet API密钥放入Travis环境变量中来安全地做到这一点(至少在原则上是这样),因此它是,并且只有在构建特殊的专用分支时才推送 当FAKE遇到Travis时,问题就来了 事实证明,当我使用时,整个paket.exe命令行作为FAKE的输出发出,并带有我的NuGet API密钥 同时,事实证明Travis允许任何未经身份验

我有一个图书馆,我用伪造、打包和推送的方式建立。很好

现在,我想通过Travis CI在连续模式下完成所有这些,包括“推送”部分。我知道存在安全问题,但我似乎可以通过将NuGet API密钥放入Travis环境变量中来安全地做到这一点(至少在原则上是这样),因此它是,并且只有在构建特殊的专用分支时才推送

当FAKE遇到Travis时,问题就来了

  • 事实证明,当我使用时,整个
    paket.exe
    命令行作为FAKE的输出发出,并带有我的NuGet API密钥
  • 同时,事实证明Travis允许任何未经身份验证的爱管闲事的个人查看完整的构建日志。我的NuGetAPI密钥就在那里
  • 我知道我可以通过将整个输出重定向到
    /dev/null
    (在
    .travis.yml
    )来禁用FAKE,但我想保留大部分输出,只需用键隐藏特定部分


    我在搜索引擎中找不到任何相关参数,谷歌也没有找到任何相关参数。下一步是查看伪源代码,看看输出是否有条件,但我想我应该先问一下。我不可能是第一个打这个的人。:-)

    我也没有在谷歌上找到答案,但我确实或多或少知道在哪里可以找到伪造的源代码,所以我就这么做了

    看起来像是实际运行相关任务
    ExecProcess
    最终调用
    ExecProcessWithLambdas
    来完成工作,
    ExecProcessWithLambdas
    中的行将进程名称和参数打印到伪日志中,如果该变量为false,则不会输出进程名称和参数。
    enableProcessTracing
    变量为,因此您应该能够对其进行设置。我自己还没有尝试过,但原则上你应该能够做到:

    ProcessHelper.enableProcessTracing <- false // Logging off
    // Do security-sensitive work here
    ProcessHelper.enableProcessTracing <- true  // Logging back on for rest of build
    
    ProcessHelper.enableProcessTracing