Spline is a tool where you can define stages and tasks for a pipeline via a yaml definition file. The tool help you to use Bash and Docker more easily and also also allow you to reduce pipeline code. The matrix capability also allow you to test different version of an interpreter, compiler or database. In addition you can use Jinja2 templating for your scripts. The documentation provides all details.

One motivation for the tool is to be more independent from environments like Jenkins or Travis CI but still allowing to run your spline based pipeline in both environments.

Spline currently supports Python 2.7.x, 3.3x, 3.4.x, 3.5.x and 3.6.x. The tool is checked via Travis CI and some integrations as mandatory checks on each pull request.

Programming language: Python
License: MIT License
Tags: Command-line Tools     Utilities     Python     Pipeline     Ci/cd     Docker     Bash     Workflows    
Latest version: v1.12

spline alternatives and similar packages

Based on the "Command-line Tools" category.
Alternatively, view spline alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of spline or a related project?

Add another 'Command-line Tools' Package


Welcome to spline - the pipeline tool

Build Status PyPI version PyPI format PyPI versions PyPI license Read The Docs Coverage Status BCH compliance Known Vulnerabilities GitPitch

Table Of Content:
[The Model](docs/model.rst)
[The Pipeline](docs/pipeline.rst)
[Pipeline Stages](docs/stages.rst)
[The Shell](docs/shell.rst)
[Environment Variables](docs/env.rst)
[Docker Container](docs/docker_container.rst)
[Event Logging](docs/event_logging.rst)
[Tool: spline-loc](docs/spline_loc.rst)
How to contact?


  • Python support for 2.7.x, 3.4.x, 3.5.x, 3.6.x, PyPy and PyPy3
  • automatic schema validation for yaml file
  • matrix based pipeline with tags
  • ordered and parallel pipelines (matrix)
  • ordered and parallel tasks execution
  • pipeline stages (named groups)
  • shell script execution: inline and file
  • environment variables merged across each level: matrix, pipeline, stage, and tasks
  • support for model data (a dictionary of anything you need)
  • cleanup hook
  • filtered execution via tags
  • supporting Jinja templating in Bash scripts (also nested inside model)
  • support for Docker containers and Docker images
  • support for the Packer tool
  • execution time on each level: pipeline, stage, tasks and shell (event logging)
  • documentation here and also at read the docs
  • usable by Jenkinsfile as well as by a .travis.yml (or other pipelines).
  • dry run and debug support
  • support for Python scripts
  • support for task variables
  • support for conditional tasks
  • enabled for code reuse: !include statement

How to contact?

Interesting Links

*Note that all licence references and agreements mentioned in the spline README section above are relevant to that project's source code only.