我在解析 a 时遇到问题build
使用 Gitlab-CI 的阶段之间的目录。
Gitlab-CI 会擦除阶段之间创建的构建工件,这看起来很奇怪。我试图在构建和测试阶段之间存储构建工件,但是构建阶段也有我想要保留的构建工件以及运行下一阶段所需的构建工件。
是否可以使用不同的路径有多个到期时间artifacts
选项?
我尝试过以下方法,仅保留第二个定义paths
(构建/测试*路径),而不是第一个paths
(.dmg) 声明。
artifacts:
paths:
- build/*.dmg
expire_in: 1 week
paths:
- build/test1
- build/test2
- build/test3
expire_in: 15 mins
我尝试过使用caches
但是似乎无法正常工作...任何建议将不胜感激!
根据文档,这似乎不可能,但我需要做类似的事情,因此作为解决方法,我执行了以下操作。
在生成所有工件的构建阶段,我为所有工件设置了 15 分钟的过期时间,包括应该具有不同过期时间的工件。在你的情况下build/*.dmg
。所以我的构建部分的工件定义如下:
artifacts:
paths:
- build/*.dmg
- build/test1
- build/test2
- build/test3
expire_in: 15 mins
之后,我在管道的下一阶段定义了两个作业。如果您这样做,两个作业将同时运行。其中一项作业执行您最初对文件的预期操作:build/test1
, build/test2
and build/test3
。管道此阶段的其他作业在脚本部分中实际上应该没有任何内容,也许类似echo "dummy job"
。但是,由于虚拟作业接收来自前一个作业的构建工件,我们可以使用它来将到期时间从 15 分钟“更改”为一周,只需使用相同的文件创建第二个工件,如下所示:
artifacts:
paths:
- build/*.dmg
expire_in: 1 week
这是一个很糟糕的解决方法,因为它会重复目标工件,因为我们将有一个过期时间为 15 分钟,另一个过期时间为 1 周。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)