buildkite / agent-stack-k8s

Spin up an autoscaling stack of Buildkite Agents on Kubernetes
MIT License
77 stars 30 forks source link

Enable plugin phase in checkout container #281

Closed DrJosh9000 closed 5 months ago

DrJosh9000 commented 5 months ago

This implements the suggestion of @moskyb in #239

wrt. plugin hooks not firing, i believe this can be fixed by changing this line to Value: "plugin,checkout", - this will make the checkout container check out and execute plugins hooks, though only for the environment and (pre-, post- ) checkout hooks.

henceforth people won't have to fork the stack in order to enable plugins in the checkout container. This should address #227 as well - a plugin with a checkout hook should be able to customise the checkout.

Note there is still no way to customise the specifics (that should be coming with PodSpecPatch™ #282)

In case of other plugins, this PR removes the need to check out plugins in the command container, since plugins are enabled in the checkout container and saved in /workspace/plugins instead of /tmp. This should allow the use of command container images that don't contain git in that scenario.

The integration test uses improbable-eng/metahook (awesome!). Although only two hooks are set (pre-checkout, post-checkout), metahook hooks almost everything, and its hooks all start with #!/usr/bin/env bash. So the integration test needs a command container image with bash in it.