Skip to content

Cray-HPE/yapl

Repository files navigation

Go

yapl

Yet Another Pipeline Language

Introduction


What is YAPL?

YAPL is a Yaml based pipeline orchestration tool for executing/managing pipeline workflows. It is best suited for a complicated installation process that involves many moving parts

Why YAPL

  • You can embed your user manual into your pipeline definition. When things go sideways, you can show rendered markdown doc that tells your customer what to do in the same terminal console.
  • You can visualize your pipeline in a bird's view. It helps you to understand where can you optimize your flow.
  • You can visualize progress of pipeline executing in a very complicated process
  • You can define a reusable Step that can be imported anywhere

Quick Start Example

Check the example here. It is a simple pipeline that has 4 steps and also imports another pipeline.

go run cmd/yapl.go -f example/pipelines/demo.yaml --vars example/vars.yaml execute

Usage

NAME:
   yapl - Yet another pipeline

USAGE:
   yapl [global options] command [command options] [arguments...]

COMMANDS:
   validate, r  validate yapl pipeline definition after imports
   execute      execute yapl after imports
   doc          generate doc after imports
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --file value, -f value  Pipeline file to read from (default: "./pipeline.yaml") [$PIPELINE_FILE]
   --vars value            json/yaml file containing variables for template [$YAPL_VARS]
   --no-color              disable colorful output
   --console-output        output command to console
   --help, -h              show help

Road Map

  • Pipeline: should be able to import/reuse another pipeline
  • Render: Go template support
  • Execute: basic workflow
  • Dependency graph: Generate dot graph
  • Doc: should be able to generate doc from pipeline/step definitions