平台上的GitLab无序流水线阻塞

时间:2019-08-16 11:11:02

标签: gitlab-ci pipeline

我正在尝试使用Gitlab CI的needs关键字来更改管道的顺序。理想情况下,我希望我的作业按以下顺序执行:

      |-> android_build -> android_deploy -|
test -|                                    |-> notify
      |-> windows_build -> windows_deploy -|

这是因为android_build确实很慢,所以我想在windows_deploy完成后立即运行windows_build,因为它不需要android_build完成。但是,我的管道当前处于阻塞状态,直到两个构建作业都完成。

我尝试使用needs关键字,如下所示,但无济于事。 在其上方添加dependencies(具有相同的内容)没有帮助。

这是我的.gitlab-ci.yml文件,其内容如下:

stages:
  - test
  - build
  - deploy
  - notify

lint:
  stage: test
  script:
    - ./renpy.sh $CI_PROJECT_DIR lint

windows_build:
  stage: build
  script:
    - ./renpy.sh launcher distribute $CI_PROJECT_DIR --package pc --dest "$BUILDS_DIR"
  artifacts:
    paths:
      - builds/*.zip

android_build:
  stage: build
  script: # [long list of commands]
  artifacts:
    paths:
      - builds/*.apk

.ssh_template: &ssh_before_script
  before_script: # [ssh configuration to my server]

android_deploy:
  <<: *ssh_before_script
  stage: deploy
  needs: [android_build]
  script: # [deploy APKs]

windows_deploy:
  <<: *ssh_before_script
  stage: deploy
  needs: [windows_build]
  script: # [deploy ZIPs]

discord_webhook:
  <<: *ssh_before_script
  stage: notify
  script: # [call Discord webhook]

管道像以前一样运行,似乎忽略了needs关键字。我在这里缺少什么,以及如何正确配置乱序执行?

0 个答案:

没有答案