如何从 GitLab 中的另一个项目触发属于管道的特定作业?

How do I trigger a specific job that belongs to a pipeline from another project in GitLab?

我知道可以通过在 gitlab-ci 文件中添加以下命令来从另一个项目触发另一个管道:

bridge:
  stage: stage_name_here
  trigger: 
    project: path_to_another_project
    branch: branch_name
    strategy: depend

问题是上面的配置会触发所有作业,而我只想触发管道中的 2 个作业。

知道如何仅触发这 2 个特定作业吗?

您可以使用规则,仅触发 ci 文件中的关键字,例如将其添加到您要触发的作业中:

except:
  variables:
    - $CI_PROJECT_ID != {{ your main project id }}

对于您不想触发的工作:

except:
  variables:
    - $CI_PROJECT_ID == {{ your main project id }}

或者,如果您想要使用规则,请将其添加到主项目中您想要 运行 的作业中:

rules:
  - if: $CI_PROJECT_ID == {{ your main project id }}
    when: never
  - when: always

我没有定义需要由触发下游管道的上游管道传递的变量,而是简单地在我不想 运行 在下游的作业中添加以下行由另一个作业触发时的管道:

except:
    refs:
      - pipelines

来源: https://docs.gitlab.com/ee/ci/triggers/index.html#configure-cicd-jobs-to-run-in-triggered-pipelines