gha-runner
runs Github Actions workflows. You can run workflows locally, or extend gha-runner
with custom backends to run workflows elsewhere (e.g. Pernosco uses gha-runner
to run Github Actions workflows in ECS). You can also customize the execution of workflows, e.g. wrapping the execution of workflow steps with various tools.
git clone https://github.com/Pernosco/gha-runner
cd gha-runner
cargo build --examples
target/debug/examples/gha_local --image-path ghcr.io/catthehacker/ubuntu:act Pernosco github-actions-test 6475d0f048a72996e3bd559cdd3763f53fe3d072 .github/workflows/build.yml "Build+test (stable, ubuntu-18.04)"
The first time you run this it will download the 1GB docker image ghcr.io/catthehacker/ubuntu:act-18.04
; this may take a while on a slow connection.
Very simple workflows are supported. Many Github Actions features are not yet supported, e.g.
- Action steps that use their own containers
- Much of the expression syntax
- Pre/post actions
- Workflows that run their own docker commands
PRs welcome!
To demonstrate this capability, the gha_local
example has an --strace
option that runs the action steps under strace
.
target/debug/examples/gha_local --strace /tmp/strace.out --image-path ghcr.io/catthehacker/ubuntu:js Pernosco github-actions-test 6475d0f048a72996e3bd559cdd3763f53fe3d072 .github/workflows/build.yml "Build+test (stable, ubuntu-18.04)"