我正在开发一种解决方案,以简化失败的Jenkins构建的动手调试。这涉及到SSH到正确的Jenkins节点并直接在WORKSPACE上进行,因此您可以交互地尝试可以解决问题的不同更改。

当我解决了在正确的目录中启动SSH session 的问题时,有一点遗漏:您的shell遗漏了Jenkins定义的原始环境变量,这些对于之后运行任何命令都是至关重要的。因此,构建的第一个命令不是set > .envrc,它会将所有内容保存到此shell文件中。

我的示例涉及direnv工具,该工具能够自动加载.envrc文件。出于安全方面的考虑,该工具不会自动加载这些文件,并显示一条消息direnv: error .envrc is blocked. Run direnv allow to approve its content.
因此,我当前的解决方案是在正确的文件夹中结束后手动运行direnv allow

我该如何自动执行此操作,因此不必键入它?提示可能没问题,因为它只涉及按一个键而不是键入〜12。

请注意,我没有被迫使用direnv本身,我接受其他解决方案。

最佳答案

从v2.15.0开始,您现在可以使用direnv的whitelist configuration实现您所描述的内容:



例如,假设包含要评估而无需运行.envrcdirenv allow的目录层次结构位于/home/foo/bar下。

创建文件/home/foo/.config/direnv/config.toml,使其包含以下内容:

[whitelist]
prefix = [ "/home/foo/bar" ]

或者,如果您有一个要列入白名单的特定路径的固定列表,则可以使用exact而不是prefix:
[whitelist]
exact = [ "/home/foo/projectA", "/home/foo/projectB" ]

10-08 02:05