A collection of opinionated Makefile recipes for all sorts of dev things — built to improve the developer experience when working with various ecosystems and tools. 🚀
Wait… but why? 🤨
Because make commands are short and easy to remember, they autocomplete, and
they document themselves using the
self-documenting makefile
approach. Running make apply or make plan is simply nicer than remembering
the full terraform apply -var-file=… -lock=true … incantation every time. 😏
Also, because… why not? 🤓
Full usage docs live at https://serpro69.github.io/devex-makefile/.
Every makefile wraps a real tool with sane defaults, so your day-to-day workflow collapses down to a handful of memorable commands:
make init # prepare the working directory / backend
make plan # preview changes
make apply # apply changes
make help # see everything the makefile can doThe easiest way to use a makefile is to add this repo as a git submodule and symlink the one you want:
git submodule add https://github.com/serpro69/devex-makefile.git
ln -s devex-makefile/terraform-gcp/Makefile Makefile
make helpSee the Installation guide for details (including the raw-download option).
| Makefile | Tool | State backend | Docs |
|---|---|---|---|
terraform-gcp |
Terraform | Google Cloud Storage | ↗ |
tofu-gcp |
OpenTofu | Google Cloud Storage | ↗ |
tofu |
OpenTofu | Local (encrypted with SOPS) | ↗ |
pulumi-gcp |
Pulumi | Google Cloud Storage or local | ↗ |
This code is licensed under the MIT License.
I made these makefiles to simplify my own workflows, but I'm happy if you find them useful too. Fixes, new commands, new makefiles, customizable configuration, documentation — literally anything is welcome.
- Open an issue (optional — PRs without an issue are fine, as long as the change is clear).
- Fork this repository 🍴
- Make your change (you already have
makeinstalled, right? 🤨). - Open a pull request. 😮💨
- Profit. 🤑