如何从 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
我知道可以通过在 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