-
Notifications
You must be signed in to change notification settings - Fork 329
Description
Is your feature request related to a problem? Please describe.
I've been adding plugins to a project that started as a base golang image - and frequently hitting runtime errors for missing programs. As a concrete example - the cache plugin might use the aws command line, or tar, or zstd depending on the configuration passed to the plugin. So the requirements definition for the plugin is empty, but as a caller I still hit missing program errors via trial-and-error.
Describe the solution you'd like
One option: add optional-dependencies to the plugin specification. That gives a clear path to install everything up front, rather than discovering it while configuring.
Describe alternatives you've considered
-
Current status: run + fail the plugin several times, until I find all the missing tools.
-
add optional dependencies + runtime behavior (warn if optional dependencies are not present, or look for configuration to no-op, warn, or fail).
-
run plugins in a dedicated container. Likely way more work to synchronize environment and disk to the main commands, but has the benefit that basic containers like
golang:1.24-bookwormwill be able to use plugins, saving a custom build step.
Additional context
reference: buildkite-plugins/cache-buildkite-plugin#122