gpt4 book ai didi

node.js - 让 Gitlab Runner 使用 node_modules 作为工件而不是缓存

转载 作者:行者123 更新时间:2023-12-04 08:18:46 28 4
gpt4 key购买 nike

根据GitLab Documentation for cache vs artifacts node_modules应该存储为缓存而不是工件。这样做的问题是,如果有多个运行者并且与创建“构建”的运行者不同的运行者拾取一份工作,那么缓存( node_modules )将不存在,这将随机使 GitLab CI 失败(如果发生相同的运行者完成其余的工作,那么它将成功)。
我可以做到,所以一切都在一项工作中完成,但是一旦我必须进行部署,这个问题就会再次发生。另一种选择是标记它,以便只有一个特定的运行者完成这项工作,但我觉得这很慢。
经过研究,我意识到我可以输入 node_modules作为工件而不是缓存,无论哪个运行者运行该作业,它都会被拾取,但我找不到任何关于这是否坏的文档。
所以可以放node_modules作为神器?如果是这样,为什么人们通常不将其作为工件(假设他们添加了过期时间)?

最佳答案

这里的简短回答是,您可以随心所欲地使用该工具。您绝对可以将工件用于 node_modules。但是,也有一种方法可以使缓存工作。
默认情况下,当运行程序缓存文件或目录时,它会将其本地存储在运行该运行程序的主机上(这就是为什么它在其他运行程序上不可用的原因)。但是,在运行器配置中,您可以更改它以将缓存对象存储在 AWS S3 或类似 S3 的存储库(如 Minio)中。如果所有运行者都以这种方式配置,或者至少有 2 个,那么这些运行者也可以使用相同的缓存项。
您可以在此处阅读有关运行者缓存配置选项的信息:​​https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnerscache-section
您可以在此处阅读有关 Minio(提供 S3 API 接口(interface)的开源存储解决方案)的信息:https://docs.min.io/

关于node.js - 让 Gitlab Runner 使用 node_modules 作为工件而不是缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65587763/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com