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

Rud*_*koŭ 1 jenkins jenkins-pipeline

在我项目的Jenkinsfile中,我经常遇到诸如stash "src"unstash "src"

stash unstash在Jenkins Pipeline工作的主要原因是什么?

lvt*_*llo 5

管道使您可以为要执行的每个阶段指定一个代理。例如,当您想在Jenkins Windows Slave和Jenkins Linux slave上运行测试时。在一条管线中将不同从站用于不同阶段的问题是,工作区的内容未提供给新从站。

因此,您可以git clone在标有“ Linux”的从属服务器上执行,然后当需要在Windows从属服务器上执行下一阶段时,则Windows从属服务器需要从工作区(来自git clone)中获取数据,该工作区当前位于Linux从属服务器上。

您可以在这里使用隐藏/取消隐藏。您可以将内容从Linux从属存储(将已隐藏的文件保存在主服务器上),然后将其存储在Windows从属服务器上(=将数据存储在该从属服务器的工作区中,然后从主服务器上删除)。在您的示例中,您将文件保存在src主服务器上,以便稍后可以将它们再次加载到其他从服务器上。

存储和取消存储应用于较小的文件,因此上述示例不是一个很好的示例(否则您的回购协议应该很小)。创建存储是为了存储一些小文件/资源​​,而不是存储整个存储库(速度非常慢)。然后,您需要查看在多个从站之间共享工作区的系统。

如果您为整个管道定义一个“全局”代理并在同一从属上运行整个管道,则不需要使用存储,因为不需要发送/共享工作空间的内容。但是在这种情况下,您将失去一些流水线的灵活性,例如在不同的从站上运行并行阶段。