代码之家  ›  专栏  ›  技术社区  ›  RudziankoÅ­

Jenkinsfile隐藏/取消隐藏的原因?

  •  0
  • RudziankoÅ­  · 技术社区  · 7 年前

    在我的项目文件中,我经常遇到这样的命令 stash "src" unstash "src"

    做这件事的主要原因是什么 stash unstash 在詹金斯管道工作?

    1 回复  |  直到 7 年前
        1
  •  6
  •   lvthillo    7 年前

    管道允许您为要执行的每个阶段指定代理。例如,当您想在Jenkins Windows从机和Jenkins Linux从机上运行测试时。在一条管线中为不同的阶段使用不同的从属设备时,问题在于工作区的内容没有提供给新的从属设备。

    所以你可以做一个 git clone 在标记为“Linux”的从机上,当需要在Windows从机上执行下一个阶段时,Windows从机需要从工作区(从 )它当前在Linux从属服务器上。

    在这里,你可以使用藏/不藏。您可以从Linux从机中隐藏内容(这将把您隐藏的文件保存在主机上)并在Windows从机上取消隐藏(=提取该从机工作区中的数据并将其从主机中删除)。在您的示例中,您将文件保存在 src 在你的主人,所以你可以加载他们在一个不同的奴隶在稍后的阶段。

    存储和取消存储应该用于小文件,所以上面的例子不是很好(或者你的回购应该是小的)。创建Stash是为了存储一些小文件/资源,而不是存储整个存储库(速度会非常慢)。然后您需要寻找在多个从属服务器之间共享工作空间的系统。

    如果为整个管道定义一个“全局”代理,并在同一从机上运行整个管道,则不需要使用stash,因为不需要发送/共享工作区的内容。但在这种情况下,您将失去一些管道的灵活性,比如在不同的从属服务器上运行并行阶段。