Skip to main content

Configure and execute pipelines with Python (similar to GitHub workflows or Jenkins pipelines).

Project description

Pypeline

CI Status Documentation Status Test coverage percentage

Poetry ruff pre-commit

PyPI Version Supported Python versions License

Pypeline is a Python application designed to streamline and automate the software development lifecycle, particularly the pipeline execution processes across various environments such as GitHub and Jenkins. The primary motivation for developing Pypeline stemmed from the need to unify and simplify the creation of build, test, and deployment pipelines that are traditionally defined separately across these platforms using GitHub workflows (YAML) and Jenkins pipelines (Jenkinsfile).

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 local scripts but also from installed Python packages.

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

  • Dependency Handling: Dependency management ensures that only the necessary steps are executed, reducing runtime and resource usage by avoiding unnecessary operations.

  • Ease of Use: With Pypeline, setting up and running pipelines becomes more straightforward, enabling developers to focus more on coding and less on configuring pipeline specifics.

Installation

Install this via pip (or your favourite package manager):

pip install pypeline-runner

Start developing

The project uses Poetry for dependencies management and packaging. Run the bootstrap.ps1 script to install Python and create the virtual environment.

.\bootstrap.ps1

This will also generate a poetry.lock file, you should track this file in version control.

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

.venv/Scripts/poetry run pytest

Check out the Poetry documentation for more information on the available commands.

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

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

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

Committing changes

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

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypeline_runner-0.3.1.tar.gz (22.3 kB view hashes)

Uploaded Source

Built Distribution

pypeline_runner-0.3.1-py3-none-any.whl (26.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page