我有一份叫“job1”的工作,负责检查一些东西。根据这个结果,应该执行'job2‘或'job3’。我用build.env工件试过了。但是环境变量EXIT_CODE
仅在脚本部分中可用,而在rules
或only
作业注释中不可用。然后我尝试使用全局变量(variables: EXIT_CODE: "0"
),并尝试在'job1‘的脚本部分设置它们。但这并不能很好地工作。根据job1的一些结果我应该如何执行作业2/3
stages:
- check
- merge
variables:
EXIT_CODE: "0"
job1:
stage: check
image: ubuntu:20.10
allow_failure: true
script:
- set +e
- git merge --ff-only github/master
- EXIT_CODE=4
- EXIT_CODE="4"
# - echo "EXIT_CODE=$?" >> build.env
# - cat build.env
#artifacts:
# reports:
# dotenv: build.env
job2:
stage: merge
dependencies:
- job1
rules:
- if: '$EXIT_CODE == "0"'
script:
- echo "WILL FAIL $EXIT_CODE"
# only:
# variables:
# - $EXIT_CODE == "128"
job3:
stage: merge
dependencies:
- job1
script:
- echo "WILL success"
only:
variables:
- $EXIT_CODE == "0"
发布于 2020-10-29 21:31:51
如果您在job2
定义中添加:
job2:
stage: merge
when: on_success
然后,它应该只在job1成功时执行,即,当它的退出代码为"0“时。
https://stackoverflow.com/questions/64591100
复制相似问题