batect
build and testing environments as code tool: Dockerised build and testing environments made easy
The sales pitch
- Consistent, fast, repeatable, isolated builds and test runs everywhere: your computer, your colleagues' computers and on CI
- Document and share common tasks within your team in a structured way - it's a go script based on Docker
- Manage dependencies for integration and end-to-end testing (like databases) with ease
- Onboard new team members in minutes: no installation required
- Supports Linux, OS X and Windows
- Works with any language or framework, your existing CI system, and your chosen language's existing tooling
- Take advantage of existing Docker images to get started quickly
Getting started
- Drop the latest
batect
andbatect.cmd
scripts from the releases page into the root folder of your project. - If you're on Linux or OS X, make sure the script is executable: run
chmod +x batect
. - Create your
batect.yml
to define your environment:- Take a look at the sample projects for inspiration
- Dive straight into the configuration file reference
- Or, if you're using another tool already and want to switch to batect, batectify by @ineffyble can convert files from other tools to batect's format
System requirements
batect requires Docker 17.06 or newer, Java 8 or newer (although this requirement will be removed before v1.0), and:
- On Linux and OS X: Bash and
curl
- On Windows: Windows 10
Documentation
All documentation is available on the documentation site. Highlights include:
- Introduction
- Getting started guide
- Configuration file reference
- Sample projects
- Comparison with other tools
If you prefer watching videos to reading documentation, you can also watch Charles introduce batect and the rationale behind it at the Evolution by ThoughtWorks conference.
Support and community
There's a batect community on Spectrum - anyone is welcome to join.
Feedback
Please open an issue on GitHub if you run into a problem or have a suggestion.
You can see what new features and improvements are planned in the roadmap.
Acknowledgements
Thank you to the following people for their bug reports, pull requests, suggestions and feedback, in alphabetical order:
- @andeemarks
- @assafw
- @binkley
- @Byron-TW
- @cazgp
- @eichelkrauta
- @ekamara
- @ineffyble
- @jagregory
- @jobasiimwe
- @Letitia-May
- @minnn-minnn
- @pameck
- @safiranugroho
- @Sami5
- ...and everyone else who has used the tool and provided feedback offline
Thank you to YourKit for providing a complimentary copy of the YourKit profiler.