What’s with DevOps engineers using `make` of all things?

This page summarizes the projects mentioned and recommended in the original post on /r/devops

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • just

    🤖 Just a command runner

  • Make is not exactly made for task definition and running, but it can be used like so as long as you know its quirks and counter intuitive gotchas, of which there are many seeing as Make is meant for building sources first and foremost. I use it a lot. I've been meaning to convert at least my personal stuff to https://github.com/casey/just or another task runner for some time though, Make can really be annoying sometimes.

  • Task

    A task runner / simpler Make alternative written in Go

  • https://taskfile.dev/ - a mix of build tool and command runner. YAML for the Taskfiles which you might consider either a pro or con. :)

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • act

    Run your GitHub Actions locally 🚀

  • If you use Github actions, act is incredibly useful. It can be used to test your GH actions, but also serves as an interface for running tasks locally.

  • pipelight

    Tiny automation pipelines. Bring CI/CD to the smallest projects. Self-hosted, Lightweight, CLI only.

  • I am building a small cli (13mb) to address this very exactly problem and write pipelines in Toml, yaml, typescript and more. https://pipelight.dev/

  • Taskfile

    Repository for the Taskfile template.

  • https://github.com/adriancooney/Taskfile - my favourite for its simplicity. A shell alias and a shell script with a function for each "job". No need to learn yet another tool when you just want to run a few pre-defined commands from a project's root. I think, if you're going to complain about make, then maybe all you really need is a shell script.

  • Rake

    A make-like build utility for Ruby.

  • Some competitors - Rake (ruby) - Bake - Earthly - SCons - doit

  • doit

    task management & automation tool

  • Some competitors - Rake (ruby) - Bake - Earthly - SCons - doit

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • scripts-to-rule-them-all

    Discontinued Set of boilerplate scripts describing the normalized script pattern that GitHub uses in its projects.

  • Personally I like https://github.blog/2015-06-30-scripts-to-rule-them-all/ as a pattern and then let the authors do whatever crazy thing they want from there. In my experience, 99% of repos never move past using simple shell scripts with a few common functions with that pattern, and things are kept fairly simple. A select few repositories tend to mature enough that they are able to invest in swapping towards something more testable than shell scripts, and then you just have a couple people who stick to invoking `make` from the scripts but it's fine and nobody has to think about it except them. We don't stick to that exact set of scripts, but find that as long as you don't use more than like 10ish entrypoints in `script/*`, and have at least `script/bootstrap` it's fine.

  • dagger

    Application Delivery as Code that Runs Anywhere (by dagger)

  • You are right make is arcane. But it gets the job done. There are new exciting things happening in this area. Check out https://dagger.io.

  • mise

    dev tools, env vars, task runner

  • I also really like rtx for installing tools and languages.

  • kubernetes

    Production-Grade Container Scheduling and Management

  • Make is pretty simple compared to some other CI/CD tools. Like Bazel (which K8s uses to build and release binaries) Edit: Used to use, it now uses only Make https://github.com/kubernetes/kubernetes/pull/99561

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts