首页 > 解决方案 > 如何在 gitlab 中触发特定作业

问题描述

我想在管道中运行一个特定的作业,我认为为作业分配一个标签,然后在 post 方法中再次指定这个标签将满足我的需求。问题是当我使用 api(post) 触发时,所有的作业尽管只有其中一个标记为 .

gitlab-ci.yml:

job1:脚本:- 回显“helloworld!” 标签:[我的标签]

job2: 脚本: - echo "hello gitlab!"


api调用: curl -X POST -F token="xxx" -F ref="myTag" https://gitlab.com/api/v4/projects/12345678/trigger/pipeline

标签: posttagsgitlabgitlab-cigitlab-ci-runner

解决方案


向您的触发器 api 调用添加一个变量,如下所示:

https://docs.gitlab.com/ee/ci/triggers/#making-use-of-trigger-variables

然后使用文件中的onlyprperty gitlab.yml,如下所示:

https://docs.gitlab.com/ee/ci/variables/#environment-variables-expressions

那么只有当变量存在时才会执行作业

例如

job1:
  script: echo "HELLO"
  only:
    variables:
      - $variables[API_CALL]=true

推荐阅读