我正在尝试创建一个用于数据加载的自动化管道。我有一个如下解释的场景:
stages
- stage1
- stage2
job1:
stage: stage1
script:
- echo "stage 1 job 1"
job2:
stage: stage1
script:
- echo "stage 1 job 2"
job3:
stage: stage1
script:
- echo "stage 1 job 3"
job4:
stage: stage1
script:
- echo "stage 1 job 4"
我想在同一阶段并行运行job1和job2。所以,在Job1和job2成功之后
我正在 .gitlab-ci.yml 中编写管道。
有人可以帮我实现这个吗?
严格执行您的要求是不可能的(据我所知),工作 3 和 4 需要处于单独的阶段(尽管计划支持将它们放在同一阶段)。需要明确的是:可以满足其他功能要求,即:
needs 关键字将 pipieline 转换为 有向无环图:
stages:
- stage-1
- stage-2
job-1:
stage: stage-1
needs: []
script:
- echo "job-1 started"
- sleep 5
- echo "job-1 done"
job-2:
stage: stage-1
needs: []
script:
- echo "job-2 started"
- sleep 60
- echo "job-2 done"
job-3:
stage: stage-2
needs: [job-1]
script:
- echo "job-3 started"
- sleep 5
- echo "job-3 done"
job-4:
stage: stage-2
needs: [job-2]
script:
- echo "job-4 started"
- sleep 5
- echo "job-4 done"
正如您在屏幕截图中看到的,作业 3 已启动,尽管作业 2 仍在运行。