首页 > 解决方案 > 使用标签在跑步者身上执行作业的最佳方式?

问题描述

这是我在 .gitlab-runner.yml 中的工作之一:

test-prod:
  stage: test
  tags:
    - vm1

  script:
    - pwd

如果我添加到tags标签vm2(这是另一个跑步者的标签),它将不起作用,因为它会寻找具有两个标签的跑步者。

那么如何配置作业以script分别在每个运行器上执行(这意味着如果我有 3 个具有单独标签的运行器:vm1、vm2 和 vm3,它将在每个运行器上执行脚本)。

我尝试在每个跑步者上添加相同的标签,但这只在该标签的一个跑步者上随机执行脚本。

我知道我可以添加另一个test-prod带有不同标签的标签,但没有更简单的方法吗?

标签: gitlabgitlab-cigitlab-ci-runner

解决方案


我不确定你想用这个做什么,但你可以使用扩展函数以这种方式解决它:

.test-prod:
  stage: test
  script:
    - <do your stuff>

test-prod:vm1:
  extends: .test-prod
  tags:
  - vm1

test-prod:vm2:
  extends: .test-prod
  tags:
  - vm2

test-prod:vm3:
  extends: .test-prod
  tags:
  - vm3


推荐阅读