Harmont docs
Pipeline DSL

Scheme DSL

The canonical pipeline form.

The Scheme DSL is the canonical form. Python is sugar on top: every Python class generates a Scheme s-expression, and harmont-eval evaluates that into JSON. You can author .harmont-pipeline.scm directly when you want fewer layers.

Minimal example

(pipeline
  (list
    (command-step "npm test"
      label: ":test_tube: Test"
      key: "test")
    (wait-step)
    (command-step "scripts/deploy.sh"
      label: ":rocket: Deploy"
      key: "deploy"))
  env: (list (cons "CI" "true")))

This is the same pipeline as the Python example, one layer down.

Source of truth

  • cidsl/lisp/src/ — DSL definitions (harmont_dsl.scm and friends).
  • cidsl/lisp/examples/ — runnable example pipelines.
  • cidsl/lisp/tests/ — golden-output tests for the evaluator.

On this page