如何在工作之间分享任务?

时间:2017-06-28 23:50:41

标签: yaml concourse

我有一项任务,我想在多个工作中重复使用,但我不想为每项工作重复任务配置。对我来说最好的方法是什么?

示例:

jobs:
- name: build
  plan:
    - get: git-branch
      trigger: true
    - task: get-build-tag  # <---- duplicate of below
      config: {} # truncated for brevity
    - task: build-image
      file: some-stuff-to-do-with-get-build-tag
- name: test
  plan:
  - get: git-branch
    trigger: true
  - task: get-build-tag # <---- duplicate of above
    config: {} # truncated for brevity
  - task: run-tests
    file: also-to-do-with-get-build-tag

请注意那些将此问题标记为{{3}}的人:Concourse团队指示我在此处专门发布有关Concourse配置的问题。如果配置从YAML变为其他东西,尽管与YAML无关,这篇文章仍然可以作为参考。

1 个答案:

答案 0 :(得分:4)

您正在寻找的是YAML主播。

这是你的管道中的样子:

# This is not part of concourse semantics but we allow
# extra keys to support anchoring
# https://github.com/concourse/concourse/issues/116
additional_tasks: 
- &get-build-tag
  task: get-build-tag
  config: {}

jobs:
- name: build
  plan:
    - get: git-branch
      trigger: true
    - *get-build-tag 
    - task: build-image
      file: some-stuff-to-do-with-get-build-tag
- name: test
  plan:
  - get: git-branch
    trigger: true
  - *get-build-tag
  - task: run-tests
    file: also-to-do-with-get-build-tag

如果您想在我们用于广告团队测试的其中一个管道中执行此操作的示例,您可以查看here