【发布时间】:2022-12-09 10:39:58
【问题描述】:
我创建了一个 gitlab 管道,其中我创建了 8 个阶段。对于每个阶段,我都设置了属性**Allow_failure:true**,这样即使任何阶段失败,它也会执行剩余的阶段。
目前,如果任何阶段失败,则最终管道状态显示为“!通过”。 我想执行管道的所有阶段,如果任何阶段失败,那么我想将管道状态显示为失败的.
笔记:我不能改变财产的价值允许失败.
请找到附件图片供您参考。
【问题讨论】:
我创建了一个 gitlab 管道,其中我创建了 8 个阶段。对于每个阶段,我都设置了属性**Allow_failure:true**,这样即使任何阶段失败,它也会执行剩余的阶段。
目前,如果任何阶段失败,则最终管道状态显示为“!通过”。 我想执行管道的所有阶段,如果任何阶段失败,那么我想将管道状态显示为失败的.
笔记:我不能改变财产的价值允许失败.
请找到附件图片供您参考。
【问题讨论】:
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
【讨论】: