代码之家  ›  专栏  ›  技术社区  ›  pbuchheit

在gitlab中订购手动触发的作业

  •  0
  • pbuchheit  · 技术社区  · 3 年前

    我正在gitlab中为CI管道设置一个构建脚本。我希望作业在运行之前等待手动输入。然而,我似乎找不到一个有效的配置。如果我将其中一个阶段设置为“手动”,那么一旦我推动更改,另一个阶段仍将运行。如果我使用allow_failure:false,如下所述: https://about.gitlab.com/blog/2021/05/20/dag-manual-fix/ 一旦我触发该作业,它就会挂起。我不确定我在这里做错了什么。有什么建议吗?

    作为参考,我的gitlab ci yml看起来像:

    stages:
      - build
      - deploy
    
    build-dev:
      stage: build
      tags:
        - development
      script:
        - echo "building message center..."
    
    deploy-dev:
      stage: deploy
      tags:
        - development
      variables:
        NODE1: "99099"
      script:
        - echo shutting down tomcat for node $NODE1...
      when: manual
      allow_failure: false
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   Raghu    3 年前

    只要做下面的小修改,它就会按照你想要的方式工作

    stages:
      - build
      - deploy
    
    build-dev:
      stage: build
      tags:
        - development
      script:
        - echo "building message center..."
      when: manual
      allow_failure: false
    
    deploy-dev:
      stage: deploy
      tags:
        - development
      variables:
        NODE1: "99099"
      script:
        - echo shutting down tomcat for node $NODE1...
    

    现在,当您提交代码时,管道将被创建,但它将在构建阶段被阻止,等待您手动启动。一旦手动触发,并且构建阶段成功,部署阶段将自动运行。

    构建阶段的任何失败都不会让部署阶段继续进行。在这种情况下,部署阶段的状态将被“跳过”,并且由于生成失败,您无法运行部署阶段。