Ploigos Step Runner (PSR) is a middleware tool to execute Continuous
Integration (CI) pipeline steps. PSR is not a pipeline! It is a CLI tool
called in each stage of a pipeline as a command: psr -s package -c psr.yaml
.
PSR is tech stack agnostic and runs on workflow runners like Jenkins, Tekton, GitHub Actions, GitLab CI, or any other workflow runner that can execute commands.
PSR abstracts the implementation of a step from a specific product or solution. A few common steps most pipelines implement are unit testing, packaging, and deploying. The implementation of these steps differs between a Java and JavaScript application. PSR abstracts implementation from the pipeline definition, allowing the same pipeline definition to be reused for all applications, regardless of the application language and framework.
Each PSR step has one or more Step Implementers that are executed by PSR from a pipeline. A step implementer does two things:
- Integrates with a given product or solution
- Produces output in a standard format that can be used or validated by other pipeline steps
Available PSR steps can be found here.
An end-to-end example pipeline that uses PSR is documented here.
Latest Release
pip install ploigos-step-runner
Latest Development Release
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ploigos-step-runner
What is a Workflow Runner?
A workflow runner is a Continuous Integration (CI) tool that executes pipelines. Common workflow runners are Jenkins, Tekton, GitHub Actions, and GitLab CI.
What if I want to use a tool that PSR doesn't have an step implementer for?
Each PSR step has a corresponding step_implementer Python module under src/ploigos_step_runner/step_implementers. If you need to use a tool that PSR does not have a step implementer for, you can create one or open a GitHub Issue to request an enhancement. See CONTRIBUTING.md for instructions on creating step implementers.
An AdHoc step implementer is proposed in #131 that would allow for a command or
script to be specified in psr.yaml
.
See CONTRIBUTING.md