/popper

Github actions runner in Python (HCL syntax)

Primary LanguagePythonMIT LicenseMIT

Popper Popper

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

Popper is a Github Actions (GHA) execution engine that allows you to run GHA workflows (in HCL syntax) locally on your machine and on CI services. The goal of this project is to provide the following functionality:

  • Continuous integration. Generate configuration files for distinct CI services, allowing users to execute GHA workflows on Travis, Jenkins, Gitlab or Circle. See here for more.
  • Other Runtimes. In addition to Docker, Popper can execute workflows in other container runtimes. We currently support Singularity and Vagrant and are working on adding Podman to the list (see here for more).
  • Action search. Provide with a searchable catalog of publicly available actions so that users can easily find which actions already exist (do not re-invent the wheel!).
  • Scaffolding. Aid in the implementation of new actions and workflows.
  • Action library. Provide with a list of reusable actions and example workflows https://github.com/popperized.

This repository contains:

Installation

To run workflows, you need to have Git and a container runtime installed (Docker, Singularity and Vagrant are currently supported). To install Popper you can use pip. We recommend to install in a virtual environment (see here for more on virtualenv). 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 Popper, 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.