GitLab并行作业:如何在Job1完成后终止Job2?
GitLab CI/CD 并行作业终止需求:Job1完成后停止Job2
我在GitLab CI/CD的Test阶段配置了两个并行运行的作业Job1和Job2:Job1负责处理任务,Job2并行监控相关处理数据。我希望在Job1完成后立即停止Job2。
原本计划通过共享变量/文件实现:Job1完成后将状态更新为“completed”,Job2在执行自身任务的同时持续监控该共享数据,一旦检测到Job1的完成状态就退出。
目前遇到的挑战:
- 无法使用
needs,因为需要两个作业并行运行而非串行; - 尝试过
artifacts、dotenv和全局变量,但这些仅在Job1完全运行结束后才会更新并传递给后续阶段/作业。
是否存在可行方法实现Job1完成后终止Job2?
编辑补充
我按照建议尝试使用项目变量,但Job2中的curl命令返回空值,相关配置代码如下:
Stages: - Test Job1: stage: Test script: - echo "Inside Job1" - 'curl --request POST --header "PRIVATE-TOKEN: $MY_ACCESS_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/variables" --form "key=myvar" --form "value=someValue"' tags: - $RUNNER Job2: stage: Test script: - echo "Inside Job2" - sleep 20s - 'curl --header "PRIVATE-TOKEN: $MY_ACCESS_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/variables/myvar"' tags: - $RUNNER
内容的提问来源于stack exchange,提问作者SeekerN
相关产品推荐
相关产品推荐

