2 unstable releases
0.2.0 | May 6, 2024 |
---|---|
0.1.0 | Nov 24, 2021 |
#189 in Testing
98KB
2.5K
SLoC
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.
Getting Started
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.
Status
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!
Instrumenting workflows
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)"
Dependencies
~19–32MB
~541K SLoC