https://github.com/wurosh/cake Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} wurosh / cake * Notifications * Star 89 * Fork 0 A simply sweet make wrapper MIT License 89 stars 0 forks Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 0 tags Code Clone HTTPS GitHub CLI [https://github.com/w] Use Git or checkout with SVN using the web URL. [gh repo clone wurosh] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @wurosh wurosh Make all options overrideable ... 97b32f0 Jun 3, 2021 Make all options overrideable 97b32f0 Git stats * 2 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time Dockerfile Initial commit Jun 3, 2021 LICENSE Initial commit Jun 3, 2021 Makefile Initial commit Jun 3, 2021 README.md Initial commit Jun 3, 2021 cake Make all options overrideable Jun 3, 2021 View code What is Cake? Vision Why Cake? Why POSIX sh Completions How to Use README.md In the beginning there was darkness... but now there is cake! What is Cake? Cake is a really thin wrapper around make that runs all targets inside a development Docker/Podman container. Vision * Most projects should have a Makefile and a Dockerfile at their root for convenience and portability + The Makefile is the single source of truth for dev commands + The Dockerfile is the single source of truth for the dev environment * A container runtime should not be a hard dependency to build the project. * Choosing between containerized and "naked" builds should be as easy as typing make or cake interchangeably * CI/CD pipelines should be able to reuse the instructions from the Makefile in an ergonomic way without having to keep the build context in mind Why Cake? Because I found myself constantly writing Makefiles that run their targets in a container, then adding in add-hoc ways for people not to use the container through environment variables, followed by a half-hearted attempt at optimizations through bind-mounts and less frequent restarts, and some faulty logic to avoid name and tag clashes. I figured it was time to extract this into a script. Despite its simplicity, the script covers 99% of my use cases for tools like act without being tied to a specific forge. Why POSIX sh Because additional dependencies are a problem, especially in corporate environments. just curl/copy this script into a directory on your $PATH and you're good to go. Completions I might provide them for convenience later, but in principle all you need to do is reuse existing make completions. In zsh that looks something like this: compdef _make cake How to Use Just use cake instead of make. The defaults should fit most use cases. If you really have to, you can specify additional docker/ podman arguments using $CAKE_RUNTIME_ARGS. I recommend placing these in your .envrc if you need them to stick around due to the specific needs of your project. About A simply sweet make wrapper Resources Readme License MIT License Releases No releases published Packages 0 No packages published Languages * Shell 95.2% * Makefile 2.9% * Dockerfile 1.9% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.