Bundles are pre-built sets of containers and tasks you can pull into your project with
Only use bundles that you trust, as they can contain arbitrary code that will be executed when you run a task or use a container from a bundle.
The following bundles are available:
bundle-dev-bundleProvides an opinionated, sensible default environment for bundle development.
golang-bundleProvides a development container for Golang, with preconfigured sensible defaults.
hello-world-bundleA sample bundle that demonstrates a basic development experience for creating a bundle, including an automated test setup.
java-bundleProvides a development container for JVM-based languages that use Gradle, with preconfigured sensible defaults.
node-bundleProvides a development container for Node.js, with preconfigured sensible defaults.
: bundles built and maintained by the batect project
If you'd like to share a bundle that you've created, please feel free to submit a PR to update this page.
Tips for building bundles¶
Consider building and publishing any Docker images your bundle uses rather than using
Pulling a pre-built image is generally faster than building an image from a Dockerfile.
It also prevents issues when packages or other external resources are removed.
Do not store state from tasks in the bundle's working copy.
batect clones the repository and checks out the given tag or branch, and shares this working copy between projects to save time and disk space. Storing state in this working copy would mean that different projects could interfere with one another.
Instead, store any state in the project's directory. Use the
batect.project_directoryconfig variable to get the path to the project's directory. The paths in included files section in the
includereference has an example.
Publish immutable tags.
Similar to Docker's behaviour when pulling image tags, batect only checks that it has previously cloned the Git reference (branch name, tag name or commit) - it does not check that the local clone is up-to-date with that reference. Therefore, using an immutable reference such as a tag ensures that everyone using the project gets the exact same version of the bundle.
It is recommended you use semantic versioning when versioning bundles.
Test your bundle.
Testing your bundles ensures that they work as expected. The hello world bundle has an example of how to do this.