Skip to content

Ploigos Step Runner (PSR) implemented as a Python library.

License

Notifications You must be signed in to change notification settings

CMSgov/ploigos-step-runner

 
 

Repository files navigation

Publish Release Publish Dev
Publish GitHub Pages
codecov
License

ploigos-step-runner

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:

  1. Integrates with a given product or solution
  2. 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.

Documentation

Install

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

FAQ

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.

Contributing

See CONTRIBUTING.md

About

Ploigos Step Runner (PSR) implemented as a Python library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%