如何根据条件停止 gitlab-ci 作业?
How to stop a gitlab-ci job based on a condition?
我想在我的 gitlab_ci
管道中评估当前 java
项目是否在 maven
pom.xml
中使用 SNAPSHOT
依赖项进行构建:
像这样:grep -q "SNAPSHOt" pom.xml && echo 1
问题:如何将其集成到 ci 管道中,以便在该条件为真时管道甚至不执行?
gitlab_ci.yml
:
image: docker:20
build:
stage: build
script:
- mvn package...
我应该在哪里添加那种条件检查,然后我怎么能让整个作业失败?
- 如果您希望管道 运行 仅基于某些条件,您可以使用 rules.
- 如果您希望管道 运行 然后在某些情况下失败
不满意你可以检查
script
中的条件然后
使用 exit some_non_zero number
.
例如:
test job:
stage: test
script:
- |
if [ 1 == 1 ]
then
exit 1
fi
这里我使用的条件是 1==1
。
before_script:
- grep -q "SNAPSHOT" pom.xml && exit 1
我想在我的 gitlab_ci
管道中评估当前 java
项目是否在 maven
pom.xml
中使用 SNAPSHOT
依赖项进行构建:
像这样:grep -q "SNAPSHOt" pom.xml && echo 1
问题:如何将其集成到 ci 管道中,以便在该条件为真时管道甚至不执行?
gitlab_ci.yml
:
image: docker:20
build:
stage: build
script:
- mvn package...
我应该在哪里添加那种条件检查,然后我怎么能让整个作业失败?
- 如果您希望管道 运行 仅基于某些条件,您可以使用 rules.
- 如果您希望管道 运行 然后在某些情况下失败
不满意你可以检查
script
中的条件然后 使用exit some_non_zero number
.
例如:
test job:
stage: test
script:
- |
if [ 1 == 1 ]
then
exit 1
fi
这里我使用的条件是 1==1
。
before_script:
- grep -q "SNAPSHOT" pom.xml && exit 1