Skip to content
forked from getpopper/popper

Github actions runner in Python (with some useful extensions!)

License

Notifications You must be signed in to change notification settings

akashrajr1/popper

 
 

Repository files navigation

Popper Popper

Downloads Build Status Join the chat at https://gitter.im/systemslab/popper PyPI version GitHub license

Popper is a workflow execution engine based on Github actions (GHA) that allows you to execute GHA workflows locally on your machine. Popper workflows are defined in HCL syntax and behave like GHA workflows. The main difference with respect to GHA workflows is that, through several extensions to the GHA syntax, a Popper workflow can execute actions in other runtimes in addition to Docker. The workflow language is strictly a superset of GHA workflow language so Popper can run a GHA workflow locally as if it was being executed by the GHA platform.

In addition to running a GHA workflow locally, the goal of this project is to provide the following functionality:

  • Runtimes. Actions can execute locally on the host where the popper command runs (i.e. "outside" a container), thus not strictly depending on having Docker installed. We are working in adding support for other runtimes such as Vagrant, Singularity, Conda and others (see this project for more).
  • Continuous integration. Generate configuration files for distinct CI services, allowing users to execute Popper workflows on these services (Travis, Jenkins, Gitlab and Circle supported).
  • Action and workflow search. Provide users with a searchable catalog of available actions and workflows so that they can re-use as much as possible what others have already done.
  • Scaffolding. Aid in the implementation of new actions and workflows, as well as extending existing ones.
  • Action library. As part of our efforts, we maintain a list of actions available at https://github.com/popperized.

This repository contains:

Installation

We have a pip package available. To install:

pip install popper

Once installed, you can get an overview and list of available commands:

popper --help

For a quickstart guide on how to use the CLI, look here.

Contributing

Anyone is welcome to contribute to Popper! To get started, take a look at our contributing guidelines, then dive in with our list of good first issues and open projects.

Participation Guidelines

Popper adheres to the code of conduct posted in this repository. By participating or contributing to Popper, you're expected to uphold this code. If you encounter unacceptable behavior, please immediately email us.

About

Github actions runner in Python (with some useful extensions!)

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 64.7%
  • Shell 33.5%
  • HCL 1.8%