Skip to content

Allow defaults to be set for resource get/put build steps in resource configuration #1941

@timrchavez

Description

@timrchavez

Feature Request

What challenge are you facing?

There can be a fair bit of mental overhead when creating Concourse pipelines, some of which is a result of having to duplicate a lot of boilerplate.

A Modest Proposal

Add a new defaults section to resource configuration blocks, that allow the pipeline developer to specify some defaults for get and put build steps. For example, if the resource supports defaults,

This:

resources:
- name: foo
  type: pull-request
  source:
    ....

jobs:
- name: tests
  plan:
  - get: foo
     trigger: true
     version: every
  - put: foo
    params:
      context: tests
      path: foo
      status: pending
  - task: validate_and_run_tests
    file: path/to/foo/tasks/unit_tests.yml
    on_failure:
      put: foo
      params:
        context: tests
        path: foo
        status: failure
    on_success:
      put: foo
      params:
        context: tests
        path: foo
        status: success
- name: deploy
  plan:
  - get: foo
    trigger: true
    version: every
  ....

Becomes this:

resources:
- name: foo
  type: pull-request
  source:
    ....
  defaults:
    get:
      trigger: true
      version: every
    put:
      params:
        context: tests
        path: foo

jobs:
- name: tests
  plan:
  - get: foo
  - put: foo
    params:
      status: pending
  - task: validate_and_run_tests
    file: path/to/foo/tasks/unit_tests.yml
    on_failure:
      put: foo
      params:
        status: failure
    on_success:
      put: foo
      params:
        status: success
- name: deploy
  plan:
  - get: foo
  ....

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions