https://github.com/alexandrelamarre/dynamic-pipeline
https://github.com/alexandrelamarre/dynamic-pipeline
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/alexandrelamarre/dynamic-pipeline
- Owner: alexandreLamarre
- License: gpl-3.0
- Created: 2021-08-21T22:31:44.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T14:01:20.000Z (over 1 year ago)
- Last Synced: 2025-01-11T01:08:28.936Z (9 months ago)
- Language: CSS
- Size: 203 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dynamic-pipeline
## What is this project?
**Requires pyyaml pacakge to be installed** : `pip install pyyaml` or `pip3 install pyyaml`
The project is a python-native and python-oriented automation pipeline implementation.
This means it requires only python to set up some sort of CICD/build/workload pipeline - the caveat being is that it requires the rest of the automation code to be integrated into the pipeline to:- Have python wrappers, or
- Be written in pythonIt aims to make modern standards of automation possible in older environments that have large and difficult to manage infrastructure and cannot integrate Jenkins or Tracis CI. For example, it integrates nicely with large monolithic architectures who have many different teams managing different aspects of the automation - over which you have no control over the intermediary script/technology usage - but want to seamlessly integrate with.
In addition, it aims to provide readable declaration of what the pipeline does in the form of its .YAML config files. It also aims to abstract away the pain of designing background subprocesses and concurrency via multi-threading in automation
It is primarily meant to be a useful tool for managing python OOP designed automation, loosely following some of these design principles:
- Python objects that perform pipeline workloads store what they need to continue their workload and only what they need to continue their workload.
- Each object represents a separate, mostly independent workload from the other objects. (For example you could have one object have a workload write to a file or upload a result, and have a second object depend on the name, existence or content of this file)