如何在不使用工件的情况下根据前一阶段结果控制舞台剧?

时间:2017-02-06 12:52:32

标签: gitlab gitlab-ci

我们在内部Gitlab安装上托管了一个项目。

该项目的管道分为3个阶段:

  • 构建
  • 测试
  • 部署

目标是隐藏或停用部署阶段当测试失败时

enter image description here

问题是我们不能使用工件,因为每次我们的机器重启都会丢失它们。

我的问题:是否有替代工具来实现此任务?

使用过的.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

1 个答案:

答案 0 :(得分:1)

我认为你可能误解了内置CI的目的。目标是在每次提交或至少每次推送时自动构建和测试。将所有任务设置为手动执行使您几乎没有优于Jenkins或Bamboo等外部CI工具的优势。目前本地执行目标的唯一优势是可以在中心位置查看。

那说没有办法有条件地显示或隐藏CI任务,因为它违背了基本思想。如果你坚持自己的想法,你可以查看前几个阶段的工件,并在出现问题时中止手动执行。

  

问题是我们不能使用工件,因为每次我们的机器重启时它们都会丢失

AFAIK工件上传到主人,而不是保存在跑步者身上。你的文物从一个阶段传到另一个阶段你应该没问题。

顺便说一句,when的默认值为on_success,这意味着只有当前一阶段的所有版本都成功时才执行构建。