Modular Pipeline Library
Project description
Modular Pypeline Library
What is MPyL?
MPyL stands for Modular Pipeline Library (in Python).
This library is loosely based on the principles described in https://www.jenkins.io/blog/2019/01/08/mpl-modular-pipeline-library/ but completely independent of Jenkins or any other CI/CD platform.
🔖 Documentation
Detailed, complete, searchable documentation can be found at https://vandebron.github.io/mpyl
📚 Principles
MPyL is built with the following principles in mind.
- Not a platform It is not tied to any CI/CD platform. MPyL is a library, not a framework. It is not a runner, not a scheduler, and it doesn't have a GUI. It can be plugged into any CI/CD platform. Execution flows for Jenkins or Dagster are included as an example.
- Minimal footprint: It is self-contained and has very few external dependencies (e.g. Git, Docker). It can be run anywhere, also on your local machine.
- Accessible and maintainable
- Written in Python, the most widely adopted scripting language with an extensive amount of client libraries relevant to CI/CD.
- Strongly typed:
MyPy
type hints and schemas for allYAML
files. Clearly defined interfaces for inputs and outputs of steps. - Focus on short feedback loop. Unit testable and everything can be run locally.
- Self documented by docstrings in the code, descriptions in the schemas and explanations in the CLI.
- Python as YAML templating engine Attempts to mix markup and logic tend to have a
worst of both worlds
outcome. MPyL uses
YAML
strictly for configuration. WhereYAML
needs to produced dynamically, like for CRDs via HELM charts, it is generated by Python code. The producedYAML
is validated against the corresponding schemas. - Extensible Support for the most common use cases (e.g. Docker, Helm, Kubernetes, AWS, etc.) is built-in.
But it is easy to extend with your own
mpyl.steps
.
💻 Technologies
Requirements
The following technologies are expected to be present on the local OS:
- Python >= 3.9
- Pip >= 23.0.1
- Docker > 20
- Docker compose
installed as plugin (
docker compose version
) >= v2.2.3 - Git SCM
Bundled
MPyL is extensible and has a minimal footprint. Having said that, batteries for the following technologies are included.
CI/CD
Build
- Docker
mpyl.steps.build.dockerbuild
- Scala (SBT)
mpyl.steps.build.sbt
- Jenkins
mpyl.cli.commands.build.jenkins
andmpyl.utilities.jenkins.runner.JenkinsRunner
Testing
- Junit
mpyl.steps.models.ArtifactType.JUNIT_TESTS
Deployment
Reporting
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file mpyl-1.7.5-py3-none-any.whl
.
File metadata
- Download URL: mpyl-1.7.5-py3-none-any.whl
- Upload date:
- Size: 254.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03ffa571f6aa36bb5df4cf4b4f3760a8a1b52c65adc6d92b7c08f26907feb27e |
|
MD5 | 7fd9f76936a551f43206047e525aaa4e |
|
BLAKE2b-256 | 4382e8f681eadfe37f0ad90c9abe10bd672774147cec5a1277d0f94f31531c76 |