我们在内部Gitlab安装上托管了一个项目。
该项目的管道分为3个阶段:
目标是隐藏或停用部署阶段当测试失败时
问题是我们不能使用工件,因为每次我们的机器重启都会丢失它们。
我的问题:是否有替代工具来实现此任务?
使用过的.gitlab-ci.yml
如下所示:
stages:
- build
- tests
- deploy
build_job:
stage: build
tags:
# - ....
before_script:
# - ....
script:
# - ....
when: manual
only:
- develop
- master
all_tests:
stage: tests
tags:
# - ....
before_script:
# - ....
script:
# - ....
when: manual
only:
- develop
- master
prod:
stage: deploy
tags:
# - ....
script:
# - ....
when: manual
environment: prod
答案 0 :(得分:1)
我认为你可能误解了内置CI的目的。目标是在每次提交或至少每次推送时自动构建和测试。将所有任务设置为手动执行使您几乎没有优于Jenkins或Bamboo等外部CI工具的优势。目前本地执行目标的唯一优势是可以在中心位置查看。
那说没有办法有条件地显示或隐藏CI任务,因为它违背了基本思想。如果你坚持自己的想法,你可以查看前几个阶段的工件,并在出现问题时中止手动执行。
问题是我们不能使用工件,因为每次我们的机器重启时它们都会丢失
AFAIK工件上传到主人,而不是保存在跑步者身上。你的文物从一个阶段传到另一个阶段你应该没问题。
顺便说一句,when
的默认值为on_success
,这意味着只有当前一阶段的所有版本都成功时才执行构建。