tinfoil

CIHex.pmHexDocsLicense

Release automation for Burrito-based Elixir CLIs. Tag a version, tinfoil ships the binaries.

What you get

A pushed v* tag produces:

All configured via one :tinfoil keyword in mix.exs; no hand-edited YAML. See tinfoil_demo for a full working project.

Status: pre-1.0. The mix tasks, workflow template, and Hex publish loop are all in place and dogfooded against a real Burrito project. Defaults and target strategies are still evolving -- pin to an exact minor version if you need stability.

Quick start

On a fresh mix new project:

mix tinfoil.init --install # splices dep + starter config into mix.exs
mix tinfoil.init # generates .github/workflows/release.yml
git add . && git commit -m "feat: add tinfoil"
git tag v0.1.0 && git push --follow-tags

That is the whole flow. Every subsequent tagged push produces a full release.

To also automate the version-bumping side with release-please (so tagging becomes "merge the release PR"), see the release-please guide.

Documentation

Full docs live on hexdocs.pm/tinfoil:

GuideWhat's in it
Getting startedInstall, configure, first release, Application callback pattern.
ConfigurationEvery option in the :tinfoil keyword.
Targets and runnersTarget matrix, Burrito target resolution, cross-compilation, NIFs.
DistributionHomebrew, Scoop, installers, prerelease handling, attestations.
Automatic releases with release-pleaseWiring release-please to tinfoil; the GITHUB_TOKEN gotcha and three fixes.
Mix tasksTask reference.

License

MIT.