Instant MicroVMs/Unikernels for macOS and Linux
linux unikernel unikraft osv freebsd netbsd microvm libkrun
README.md

ci-drone-plugins — real Drone plugins, without a Docker daemon #

A Drone plugin is a container image speaking the simplest protocol there is: settings arrive as PLUGIN_* environment variables and the entrypoint does the work. bsdkrun ci runs them for real — no daemon involved: the plugin image's rootfs is pulled host-side at plan time (through the same cache and registry resilience every image gets), mounted read-only into the guest, given a writable overlay, the workspace bound at /drone/src, and the entrypoint chroot-executed with the flattened settings — no shell required inside the image, so scratch-plus-one-binary plugins work too.

This example runs the real plugins/download plugin to fetch a file into the workspace; the next step asserts the file actually arrived — proof the plugin executed and shared the workspace.

Plugins that talk to a Docker daemon (plugins/docker building images) still fail inside with their own error — the same honest boundary as container actions.

CI runs the repository's HEAD commit, so the example needs its own git repository:

cp -r examples/ci-drone-plugins /tmp/ci-drone-plugins
cd /tmp/ci-drone-plugins
git init -q && git add -A && git commit -qm init
bsdkrun ci run