-
Notifications
You must be signed in to change notification settings - Fork 0
DSL Overview
Leonard Ramminger edited this page Aug 14, 2026
·
4 revisions
Beez looks for build.lua in the project root (current working directory when you run beez).
You can use normal Lua at the top level: local variables, functions, require(), and loops to generate steps.
- Beez creates a Lua 5.4 state
- Opens
baseandpackagestandard libraries - Registers DSL globals (see below)
- Executes
build.luawithscript_file - Merges any
beez.config(...)calls into project settings - Populates the registry (tasks, steps, workflows, order hints)
If loading fails, Beez prints Lua error: or DSL error: and exits. No steps run.
| Function | Purpose |
|---|---|
step({ ... }) |
Register a step |
task(name, cmd) |
Register a shell task |
task(name, { ... }) |
Register a task with multiple actions |
task("org/plugin:task") |
Import a task from a plugin |
workflow(name, { ... }) |
Register a workflow |
workflow(name, "org/plugin:workflow") |
Import a workflow from a plugin |
workflows({ name = table_or_ref, ... }) |
Register or import multiple workflows |
configure({ { target, config }, ... }) |
Batch-configure plugins and steps |
configure_plugin("org/plugin", config) |
Configure one plugin |
order(before, after, ...) |
Declare step ordering (chain) |
reqpack { ... } |
Declare external dependencies and Beez plugins |
| Member | Purpose |
|---|---|
beez.config(table) |
Merge project Beez settings |
beez.env(key) |
Read environment variable or .env value |
beez.env_or(key, …, default) |
Read env with fallback |
beez.shell.run, beez.char.quote, beez.increment.run
|
Plugin helpers — Plugin System |
beez.fs, beez.net, beez.data, … |
See Lua API Overview |
See Beez API for config and env. All other beez.* modules are documented under Lua API in the sidebar.
- Duplicate names: registering the same task, step, or workflow name again replaces the previous entry
-
Order of declarations:
configure_step()can appear before or afterstep(); pending config is merged when the step is registered -
Order hints:
order()can appear before or after step declarations; hints apply only when both step names appear in the same phase+scope group (missing names are ignored)
- It does not run steps by itself. Execution happens when you invoke the CLI (CLI)
- It is not reloaded during a run. Changes require a new
beezinvocation - Callback functions are stored at load time and called later during execution
Only base and package are opened by Beez. Use require("config") for project modules.
Avoid relying on io, os, or debug unless you open them yourself (not recommended in portable build.lua files).
Common failures:
| Error | Cause |
|---|---|
step is missing required field 'name' |
Invalid step table |
field 'run' must be a string or function |
Missing or wrong run
|
task '...' table form must be a list of actions |
Task table is not a command list |
workflow parallel step requires at least one phase |
Empty parallel block |
| Lua syntax error | Invalid Lua |
Fix the script and rerun. Use beez --list steps to verify registration.
- Step Declaration - define work units
- Workflow Declaration - wire phases together
- Plugin System - Beez plugins, config DSL, standard workflows
- ReqPack Declaration - declare tool and library dependencies
- First Pipeline - hands-on tutorial
Quick Reference · Glossary · FAQ
- Fundamentals
- Core Concepts
- Project Layout
- First Pipeline
- Phases and Scopes
- How Phases and Scopes Work
- Selecting with Phases and Scopes
- Designing Phases and Scopes
- Parallel Execution and Dependencies
- Configuration
- Configuration Overview
- Global User Config
- Project Config
- Environment Variables
- Performance Settings
- Cache Settings
- Config Reference
- CLI
- CLI Overview
- Running Targets
- Filtering by Phase
- Running a Single Step
- Listing Entities
- Output and Logging Flags
- Cache and Maintenance Flags
- Meta and Utility Commands
-
Project Scaffolding —
beez --init(embedded Tempify) - CLI Flag Reference
- Lua DSL
- DSL Overview
- Plugin System — Plugins, Config DSL, Standard-Workflows
- Step Declaration
- Task Declaration
- Workflow Declaration
- Order Declaration
- Configure Step
- ReqPack Declaration
- Beez API
- Step Context
- DSL Patterns
- Caching
- Caching Overview
- Step Cache
- Success Cache
- Glob Metadata Cache
- Artifact Patterns
- Cache Keys and Invalidation
- Cache Storage and Maintenance
- Caching Troubleshooting
- UI and Output
- Output Modes
- Progress and Animation
- Colors and Themes
- Run Summaries
- Logging and Log Files
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes