在 Gitlab CI yaml 文件中,如何在完成任何其他预定义阶段后触发一项作业?

时间:2021-04-24 01:07:01

标签: gitlab gitlab-ci gitlab-ci-runner

我正在制作一个 gitlab ci yaml 文件,它会提示一个作业一个接一个地直接运行。我正在使用需要参数来做一些事情,但现在我有一个用例,其中不同的作业可以触发相同的特定作业,但没有必要同时运行它们。完成这些工作中的任何一项都应该开始新的工作。这是我到目前为止所拥有的:

trigger1_tests:
  stage: trigger
  script:
    - echo "TBD"
  allow_failure: false
  when: manual

trigger2_tests:
  stage: trigger
  script:
    - echo "TBD"
  allow_failure: false
  when: manual

run_after_trigger:
  stage: test
  when: on_success
  needs:
    - trigger1_tests
    - trigger2_tests

虽然上面没有做我想要的。它目前在运行之前等待 trigger1_testtrigger2_test 完成。但是,我想要的只是完成这两个作业中的任何一个以触发 run_after_trigger。所以,我希望 needs 的功能就像它有一个 OR 运算符而不是一个 AND。到目前为止,||| 在语法上似乎不正确,所以如果有办法做到这一点,我非常感谢您的帮助!

run_after_trigger:
  stage: test
  when: on_success
  needs: # Need to interpret as OR, not AND
    - trigger1_tests OR trigger2_tests

0 个答案:

没有答案