Plugins which wrap other plugins

Hey! Just chatting with someone that it’d be awesome to be able to create a plugin that wraps other plugins. For example, lets assume there wasn’t a golang-buildkite-plugin. I might want to create a golang plugin which just invokes the docker-buildkite-plugin with a set of parameters (image: golang, command: go build).

Another example use case might be a meta-plugin. Execute the step but include these two plugins’ hooks. This could simplify a lot of pipelines as you can create a group of common plugins together, without explicitly writing out every plugin

The rub, of course, is I have no idea what the actual plugin that’s leveraging this functionality could look like.

Maybe one idea would be to power it with plugin.yml

# plugin.yml
extends:
- docker

and you can set parameters with

# hooks/extends-setup-or-some-other-existing-hook
export DOCKER_PLUGIN_IMAGE=golang