当前位置: 首页 > 知识库问答 >
问题:

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

潘慈
2023-03-14

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

项目管道分三个阶段:

  • 生成
  • 测试
  • 部署

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

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

我的问题:有没有一个替代工件的解决方案来完成这个任务?

使用的. 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个答案

司空朝
2023-03-14

我想你可能误解了内置CI的用途。目标是在每次提交或至少每次推送时,构建和测试都实现自动化。与Jenkins或Bamboo等外部CI工具相比,将所有任务设置为手动执行几乎没有任何优势。现在本地执行目标的唯一优势是在中心位置具有可见性。

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

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

AFAIK工件被上传到主机,而不是保存在运行程序上。你应该可以让你的工件从一个阶段传递到另一个阶段。

顺便说一下,< code>when的缺省值是< code>on_success,这意味着只有当前面阶段的所有构建都成功时才执行构建。

 类似资料:
  • 问题内容: 我将从通知的新Google服务开始。 多亏了这段代码https://github.com/firebase/quickstart- android/tree/master/messaging, 我才能够将通知从 Firebase用户控制台 发送到Android设备。 有没有使用Firebase控制台发送通知的API或方法?我的意思是,例如,一个PHP API或类似的东西,可以直接从我自

  • 我正在尝试将任务链接到CompletableFuture中,以并行执行它们并获得最佳性能和资源利用率。 我正在编写的工作流有五个阶段,每个阶段取决于前几个阶段的结果。 工作流执行如下: 我可以创建一个结果持有器对象来保存每个阶段的结果。但是,我不确定这是否是最好的解决方案。 CompletableFuture是此用例的最佳解决方案吗?链接这些阶段的最佳方式是什么?

  • 我决定在我最近开始的项目中使用JPA 2.1的实体图功能,但我遇到了一个问题。 当您将图形扩展到 ManyToOne 关系上时,效果很好,但对于 OneToMany,结果会重复,因为我的提供程序(Hibernate)使用左外连接。 我看到一些解决方案,他们提出了独特的关键字来解决这个问题,但我认为这是一个棘手的解决方案,即使我们如何才能让下一级实体不同。 我的意思是,如果我有3个实体A、B和C,我

  • 我开始使用新的Google通知服务 。 多亏了这个代码https://github.com/Firebase/quickstart-android/Tree/master/messaging,我才能够从我的Firebase用户控制台向我的Android设备发送通知。 是否有任何API或方法可以在不使用Firebase控制台的情况下发送通知?我的意思是,例如,一个PHP API或类似的东西,从我自己

  • 想在某小说网站"免费"下载一篇小说, 结果无意间发现这个网站能做到网页内展示正常, 但控制台却是乱码的操作 这是对应网站的地址 这种问题除非带图, 否则不好描述, 所以百度,google,bing,copilot都没结果. 想知道如何实现这种高端功能,

  • 点击Search by Name超链接时,URL会发生变化,但SearchByNameComponent会加载到app.component.html内容下面。如何在单击时只显示SearchbyNameComponent而不显示全部内容?target=_blank没有帮助。

  • 问题内容: 即使在执行select语句之前,也没有任何方法可以获取特定表的元数据。 问题答案: 您可以从该界面中学到很多有关表的知识。