All Projects → batect → Batect

batect / Batect

Licence: apache-2.0
Build And Testing Environments as Code Tool

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Batect

drupal-debug
Alternative Kernel for Drupal 8 to improve the Developer eXperience during the development process.
Stars: ✭ 32 (-91.84%)
Mutual labels:  developer-experience
dev-with-docker-on-ubuntu
After fighting with Docker on OSX and the need for 2-way syncs, fsevents, etc. I developed a desire to get back to a simple(r) development environment on a linux based VM. This project is a jumping off point.
Stars: ✭ 25 (-93.62%)
Mutual labels:  developer-experience
CppDeveloperRoadmap
Roadmap for learning the C++ programming language for beginners and experienced devs.
Stars: ✭ 1,048 (+167.35%)
Mutual labels:  developer-experience
after-work.js
[DEPRECATED] CLI for automated tests in web projects.
Stars: ✭ 56 (-85.71%)
Mutual labels:  developer-experience
cli
Do not program API integrations! Install them.
Stars: ✭ 14 (-96.43%)
Mutual labels:  developer-experience
devrel-notebook
📚 Your core knowledge to doing solid devrel
Stars: ✭ 28 (-92.86%)
Mutual labels:  developer-experience
kobs
Kubernetes Observability Platform
Stars: ✭ 44 (-88.78%)
Mutual labels:  developer-experience
Hela
🍦 Powerful software development experience and management. Enhancing @tc39 JS, @denoland and @nodejs, because we need a bit of magic. ✨ You can think of it as Cargo for the JavaScript ecosystem.
Stars: ✭ 320 (-18.37%)
Mutual labels:  developer-experience
stitches-site
stitches.dev
Stars: ✭ 240 (-38.78%)
Mutual labels:  developer-experience
knowledge-base-content
Open-source knowledge base covering topics about developer experience.
Stars: ✭ 73 (-81.38%)
Mutual labels:  developer-experience
python-way
A curated list of articles, talks, tutorials to help you on your way to be the so called Full Stack Python Dev.
Stars: ✭ 74 (-81.12%)
Mutual labels:  developer-experience
follows-you-github
A simple browser extension that shows a label to indicate that some user follows you on GitHub
Stars: ✭ 25 (-93.62%)
Mutual labels:  developer-experience
laziness
Laziness is a set of tools for a better developer experience.
Stars: ✭ 18 (-95.41%)
Mutual labels:  developer-experience
elodin-old
Quality and Optimisation tools for CSS in JavaScript
Stars: ✭ 15 (-96.17%)
Mutual labels:  developer-experience
awesome-devcontainers
A curated list of awesome tools and resources about dev containers for common programming languages and technology stacks to boost your developer productivity 🚀
Stars: ✭ 165 (-57.91%)
Mutual labels:  developer-experience
dx-automator
A tool for managing priorities across multiple GitHub repositories
Stars: ✭ 14 (-96.43%)
Mutual labels:  developer-experience
react-boilerplatinum
A React scaffold focused in developer experience
Stars: ✭ 20 (-94.9%)
Mutual labels:  developer-experience
Hukum
An NPM module that displays Github Action progress in the terminal and aims to improve your development experience by printing status in realtime.
Stars: ✭ 375 (-4.34%)
Mutual labels:  developer-experience
Roadmap Do Desenvolvedor Web
🎢 Roadmap para se tornar um desenvolvedor web! Atualização 2021!
Stars: ✭ 276 (-29.59%)
Mutual labels:  developer-experience
awesome-technical-communication
😎 A curated list of awesome resources about technical communication
Stars: ✭ 102 (-73.98%)
Mutual labels:  developer-experience

Batect

Build Status Coverage CII Best Practices License Chat

build and testing environments as code tool

Batect allows you to define your development tasks (building, running, testing, linting and more) in terms of one or more Docker containers, run those tasks quickly and consistently everywhere, and easily share them with your team.

Batect is:

  • 🚀 fast: Tasks start quickly due to parallelisation, run quickly thanks to caching, and clean up reliably every time - we've seen 17% quicker execution than Docker Compose.

  • 😌 easy to use: Easily share your development tasks with your whole team, and free them from manual setup of build tools and dependencies for tasks like running your app locally or integration testing. And no installation is required either - just drop the script in your project and Batect takes care of the rest.

  • consistent: Batect uses Docker to create a clean, isolated environment every time you run a task, freeing you from "works on my machine" issues - including on CI. And you can easily share tasks between projects with bundles.

  • versatile: Anything that can run in a Docker container can be run with Batect - builds, unit testing, integration testing, linting, local environments, deployments; frontend, backend or somewhere in between, Batect can do it all.

asciicast

Hello World

The simplest possible batect.yml:

containers:
  my-container:
    image: alpine:3.11.3

tasks:
  say-hello:
    description: Say hello to the nice person reading the Batect README
    run:
      container: my-container
      command: echo 'Hello world!'

Run it with ./batect say-hello:

$ ./batect say-hello
Running say-hello...
my-container: running echo 'Hello world!'

Hello world!

say-hello finished with exit code 0 in 1.2s.

Get a list of available tasks with ./batect --list-tasks:

$ ./batect --list-tasks
Available tasks:
- say-hello: Say hello to the nice person reading the Batect README

Take a look at the sample projects for more examples.

Getting started

  1. Download the latest version of batect and batect.cmd from the releases page, and copy them into your project.

    Note that you only need the scripts - you don't need to download batect.jar.

    The batect and batect.cmd scripts are designed to be committed alongside your project, and not installed globally. Committing them alongside your code improves consistency within your team, as everyone uses the same version of Batect. They will automatically pull down the correct version of Batect for your operating system.

  2. If you're on Linux or macOS, make sure the script is executable: run chmod +x batect.

  3. Create your batect.yml to define your tasks and the environments they run in:

Requirements

Batect requires Docker 18.03.1 or newer, Java 8 or newer (although this requirement will be removed before v1.0), and:

  • On Linux and macOS: Bash and curl
  • On Windows: Windows 10 / Windows Server 2016 or later

Batect supports both Linux and Windows containers.

A 64-bit version of Java is required on Windows.

Under the hood

Take a look at the task lifecycle to understand how Batect executes tasks.

Documentation

All documentation is available on the documentation site. Highlights include:

Presentations

  • Dockerised local build and testing environments made easy at Container Camp AU (July 2019): video

    Also presented at DevOpsDays Auckland (October 2019), DDD Sydney (September 2019) and DDD Melbourne (August 2019).

  • Build & Testing Environments as Code: Because Life's Too Short Not To at Evolution by ThoughtWorks (June 2018): video, slides

Support and community

We use GitHub Discussions for community support and Q&A.

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.

Contributing

See the contribution guide.

Acknowledgements

Thank you to the following people for their bug reports, pull requests, suggestions and feedback, in alphabetical order:

Thank you to YourKit for providing a complimentary copy of the YourKit profiler, and thank you to JFrog for providing a complimentary instance of both Bintray and Artifactory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].