【问题标题】:Gitlab CI pipeline to run jobs parallel in same stage and invoke/trigger other jobs of same stageGitlab CI管道在同一阶段并行运行作业并调用/触发同一阶段的其他作业
【发布时间】:2021-01-27 00:42:59
【问题描述】:

我正在尝试为数据加载创建自动化管道。我有一个场景如下所述:

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 成功后

  • job1 将调用/触发 job3。这意味着当job1成功时job3会自动启动
  • job2 将调用/触发 job4,这意味着 job4 将在 job2 成功时自动启动

我正在.gitlab-ci.yml 中编写管道。

谁能帮我实现这个?

【问题讨论】:

    标签: amazon-web-services gitlab gitlab-ci build-automation gitlab-ci-runner


    【解决方案1】:

    不可能严格实现您的要求(据我所知),作业 3 和 4 需要处于单独的阶段(尽管支持将它们放在同一阶段 is planned)。需要明确的是:可以满足其他功能要求,即:

    • job1 和 job2 并行启动
    • job1 将触发 job3(立即,无需等待 job2 完成)
    • job2 将触发 job4(立即,无需等待 job1 完成)

    关键是使用needs关键字将管道转换为directed acyclic graph

    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 仍在运行。

    【讨论】:

    • 嗨@mafor 谢谢你的回复。它第一次对我有用。但是后来当我尝试实现它时,它给了我一个错误,说“在你的 .gitlab-ci.yml 中发现错误:job-3:需要'job-1'”。我还通过 CI lint 进行了测试,没有语法错误。我不知道为什么会出现这个错误。
    • @VIPINPAL 它可能与您的工作细节有关,例如only 关键字的使用。见gitlab.com/gitlab-org/gitlab/-/issues/207225
    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多