【问题标题】:How to set gitlab Pipeline status as failed if any of stage got failed如果任何阶段失败,如何将 gitlab 管道状态设置为失败
【发布时间】:2022-12-09 10:39:58
【问题描述】:

我创建了一个 gitlab 管道,其中我创建了 8 个阶段。对于每个阶段,我都设置了属性**Allow_failure:true**,这样即使任何阶段失败,它也会执行剩余的阶段。

目前,如果任何阶段失败,则最终管道状态显示为“!通过”。 我想执行管道的所有阶段,如果任何阶段失败,那么我想将管道状态显示为失败的.

笔记:我不能改变财产的价值允许失败.

请找到附件图片供您参考。

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    Gitlab 中没有为此给出配置。所以我们主要必须使用脚本来处理这个问题。

    主意:

    • 我们在末尾添加了一个新作业,以验证之前的所有作业是否成功。如果它看到任何失败,它就会失败。
    • 如何检查?:我们利用文件/工件来传递该信息。
    • 直到最后的所有阶段都将由 Gitlab 执行(通过或失败)

    输出:

    最小片段:

    
    jobA:
      stage: A
      allow_failure: true
      script:
        - echo "building..."
        - echo "jobA" > ./completedA
      artifacts:
        paths:
          - ./completedA
    
    
    jobB:
      stage: B
      allow_failure: true
      script:
        - echo "testing..."
        - exit 1
        - echo "jobB" > ./completedB
      artifacts:
        paths:
          - ./completedB
    
    jobC:
      stage: C
      allow_failure: true
      script:
        - echo "deplying..."
        - echo "jobC" > ./completedC
      artifacts:
        paths:
          - ./completedC
    
    
    validate: 
      stage: Validate 
      script: 
        - |
          if [[ -f ./completedA && -f ./completedB && -f ./completedC ]]; then
          echo "All stages were completed"
          else
          echo "Stages were not completed"
          exit 1
          fi
    
    stages:
      - A
      - B
      - C
      - Validate
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多