Skip to main content

pypeline - Define Your CI/CD Pipeline Once, Run It Anywhere

CI Status Documentation Status Test coverage percentage

Poetry ruff pre-commit

PyPI Version Supported Python versions License

Pypeline lets you define your build, test, and deployment pipeline in a single YAML file and run it consistently across your local development environment and any CI/CD platform (GitHub Actions, Jenkins, etc.). No more platform-specific configurations – write once, run anywhere.

Key Features

  • Unified Pipeline Definition: Users can define their entire pipeline in a single YAML file, eliminating the need to switch between different syntaxes and configurations for different CI/CD tools.

  • Extensibility: Pypeline supports execution steps defined not only through installed Python packages but also from local scripts.

  • Execution Context: Allow sharing information and state between steps. Each step in the pipeline receives an execution context that can be updated during step execution.

  • Dependency Handling: Every step can register its dependencies and will only be scheduled if anything has changed.

  • Use as a Library: PipelineConfig and PipelineLoader[T] are generic — define your own step base class and use pypeline's infrastructure (config loading, step resolution, shared context) to build custom pipelines for any domain, not just CI/CD. See Use Pypeline as a Library.

Installation

Use pipx (or your favorite package manager) to install and run it in an isolated environment:

pipx install pypeline-runner

This will install the pypeline command globally, which you can use to run your pipelines.

[!NOTE] The Python package is called pypeline-runner because the name pypeline was already taken on PyPI. The command-line interface is pypeline.

Documentation: pypeline-runner.readthedocs.io

Quick Start

pipx install pypeline-runner
pypeline init --project-dir my-pipeline
cd my-pipeline
pypeline run

Walkthrough: Getting Started with Pypeline

To get started run the init command to create a sample project:

pypeline init --project-dir my-pipeline

The example project pipeline is defined in the pipeline.yaml file.

pipeline:
  - step: CreateVEnv
    module: pypeline.steps.create_venv
    config:
      bootstrap_script: .bootstrap/bootstrap.py
  - step: WestInstall
    module: pypeline.steps.west_install
    description: Download external modules
  - step: MyStep
    file: steps/my_step.py
    description: Run a custom script

This pipeline consists of three steps:

  • CreateVEnv: This is a built-in step that creates a Python virtual environment.
  • WestInstall: This is a built-in step that downloads external modules using the west tool.
  • MyStep: This is a custom step that runs a script defined in the steps/my_step.py file.

You can run the pipeline using the run command:

pypeline run --project-dir my-pipeline

Contributing

The project uses Poetry for dependencies management and packaging. You can set up the development environment using one of the following methods:

Option 1: Using Poetry directly (minimal setup)

poetry install

Option 2: Using pypeline-runner (runs the full pipeline including tests and checks)

pipx install pypeline-runner
pypeline run

To execute the test suite, call pytest inside Poetry's virtual environment via poetry run:

poetry run pytest

For those using VS Code there are tasks defined for the most common commands:

  • run tests
  • run all checks configured for pre-commit
  • generate documentation

See the .vscode/tasks.json for more details.

This repository uses commitlint for checking if the commit message meets the conventional commit format.

Credits

This package was created with Copier and the browniebroke/pypackage-template project template.

Metadata

Release files for pypeline-runner 1.38.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypeline-runner 1.38.0
File Size Uploaded
pypeline_runner-1.38.0.tar.gz 40.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypeline-runner 1.38.0
File Interpreter ABI Platform
pypeline_runner-1.38.0-py3-none-any.whl Python 3 none any Details

Total release size: 89.2 kB

Release files / pypeline_runner-1.38.0.tar.gz

Download URL pypeline_runner-1.38.0.tar.gz
Size 40.4 kB
Tags Source
SHA-256 checksum
How to use checksums
267901fe82fb525ddeaca0dc6a1ed8a4d888f93f84cb75af87522de135301083
BLAKE2b-256 checksum
How to use checksums
3636fc472b7b63be96eebd3b6ca6265d8868cf92a8214876747f5fb23be2e80d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release files / pypeline_runner-1.38.0-py3-none-any.whl

Download URL pypeline_runner-1.38.0-py3-none-any.whl
Size 48.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68dadf75af5f82f6c21c2bd6de0311a5b4a5b4a21ea07a86282b883ad3994de6
BLAKE2b-256 checksum
How to use checksums
d97d0573aba9b2d0b89b4ba2757606fe5115eb11360c46fb71dbd577936f155d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.38.0 This release

2 release files

1.37.0

2 release files

1.36.0

2 release files

1.34.0

2 release files

1.33.0

2 release files

1.30.0

2 release files

1.29.2

2 release files

1.29.1

2 release files

1.29.0

2 release files

1.28.0

2 release files

1.25.0

2 release files

1.24.1

2 release files

1.24.0

2 release files

1.23.2

2 release files

1.23.1

2 release files

1.23.0

2 release files

1.22.0

2 release files

1.21.1

2 release files

1.21.0

2 release files

1.19.1

2 release files

1.19.0

2 release files

1.18.2

2 release files

1.18.1

2 release files

1.16.0

2 release files

1.15.1

2 release files

1.15.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page