Additional resource types used by your pipeline.
Each resource in a pipeline has a type
. The resource's type determines
what versions are detected, the bits that are fetched when used for a
get
step, and the side effect that occurs when used for a
put
step.
Out of the box, Concourse comes with a few resource types to cover common CI use cases like dealing with Git repositories and S3 buckets.
Beyond these core types, each pipeline can configure its own custom types by
specifying resource_types
at the top level. Each custom resource type is
itself defined as a resource that provides the container image for the custom
resource type (see Implementing a Resource). You will almost always
be using the
docker-image
resource type when doing this.
The following example extends a Concourse pipeline to support use of the
pull-request
resource type and then uses it within the pipeline:
resource_types:
- name: pull-request
type: docker-image
source:
repository: jtarchie/pr
resources:
- name: atomy-pr
type: pull-request
source:
repo: vito/atomy
access_token: {{access-token}}
jobs:
- name: atomy-pr-unit
plan:
- get: atomy-pr
- put: atomy-pr
params:
path: atomy-pr
status: pending
- task: unit
file: atomy-pr/ci/unit.yml
on_success:
put: atomy-pr
params:
path: atomy-pr
status: success
on_failure:
put: atomy-pr
params:
path: atomy-pr
status: failure
Custom resource types can override the core resource types, and can be defined
in terms of each other. Also, a custom resource type can use the core type that
it's overriding. This is useful if you want to e.g. provide your own custom
docker-image
resource, by overriding the core one (and using it one last
time for the override itself), and then using it for all other custom resource
types.