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:
cli/
. The codebase of the command-line tool.docs/
. General documentation containing guides, CLI documentation and pointers to other resources.gh-pages
branch. Contents of our landing page.
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.
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.
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.