build
目录时遇到问题。 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
,但是似乎无法正常工作...任何建议将不胜感激! #1 楼
在SO上已经通过绕过工作的方式解决了这一问题,因为根据文档看来这似乎不可能。第1阶段:构建和存储所有工件。build_stage:
script:
- build
artifacts:
paths:
- build/*.dmg
- build/test1
- build/test2
- build/test3
expire_in: 15 mins
第2.1阶段:使用工件
build/test1, build/test2
和工件进行下一个正式工作阶段(即在我的场景中运行测试)。 build/test3
。test_stage:
script:
- test
dependencies:
- build
阶段2.2:与Stage 2.1并发运行时,您只能有一个空作业,但设置了新的工件到期日期。
overwrite_artifact_stage:
script:
- echo 'saving artifact'
artifacts:
paths:
- build/*.dmg
expire_in: 1 week
#2 楼
似乎您正在尝试全局定义工件,因为您要覆盖键的定义,因此无法使用多个路径。相反,您应该定义每个作业的路径。工件:
expire_in:1周
build:buildjob
paths:
- build/test1
- build/test2
- build/test3
expire_in: 15 mins
test:testjob
paths:
- build/*.dmg
artifacts:
expire_in: 1 week
评论
我忘记在问题中提到我已经在一项工作中定义了它。我的“构建”作业同时构建了工件和“测试”工件,但是我不想缓存“测试”工件,因为在流水线之后没有清除缓存。
– Rekovni
17年9月21日在8:33