powered by blueprint

Blueprint templates, always in sync.

A curated collection of templates for Dockerfiles and GitHub Actions workflows. Declare versions once, render every file, and detect drift automatically in CI.

~/myapp · render template
$ blueprint render setup.bp \
    --template @github:elpic/templates@main:containers/python \
    --output . \
    --var APP_NAME=myapp

Key features

Blueprint-rendered

Each template is a .bp blueprint plus .tmpl files. Render once, re-render whenever a version bumps, and every file stays in sync.

One source of truth

Declare Python version, runtime packages, and variables in setup.bp. They flow into Dockerfiles, workflows, and entrypoints automatically.

Drift detection

Use blueprint check in CI to catch when a rendered file falls out of sync with its template. Comments on the PR explain the diff.

@github: shorthand

Reference templates directly from GitHub. No vendoring, no submodules, just pin a ref and render.

/ usage

One blueprint. Every file in lockstep.

Each template folder contains a setup.bp blueprint plus one or more .tmpl files. Variables with defaults can be omitted. Required variables must be passed via --var.

  • Versions and packages live in setup.bp
  • Re-render after a version bump, every file stays consistent
  • Reference templates directly from GitHub, no vendoring
install: curl -fsSL https://install.getbp.dev | sh
render & check
# render the template into your project
blueprint render setup.bp \
  --template . \
  --output . \
  --var APP_NAME=myapp

# check for drift in CI
blueprint check setup.bp \
  --template . \
  --against . \
  --var APP_NAME=myapp

/ drift detection

Catch drift before it ships.

Pair any template with actions/github/blueprint-check in your repo. On every PR it runs blueprint check, fails the build if rendered files have drifted, and posts a comment explaining what changed and how to fix it. The comment auto-removes when drift is resolved.

Render the first one in under a minute.

Install blueprint, copy a template, and render. Every variable has a sensible default, only required ones need a flag.

sibling project

Powered by blueprint

blueprint is the rendering engine behind these templates. Define variables once, render files everywhere, and catch drift before it ships.

Visit getbp.dev
sibling project

actions workflows

Reusable GitHub Actions composite steps and workflow templates. Integrate, deliver, and publish with zero boilerplate.

Visit elpic/actions