Fireactions is an orchestrator for GitHub runners. BYOM (Bring Your Own Metal) and run self-hosted GitHub runners in ephemeral, fast and secure Firecracker based virtual machines.
Several key features:
Autoscaling
Robust pool based scaling, cost-effective with fast GitHub runner startup time of 20s~.
Ephemeral
Each virtual machine is created from scratch and destroyed after the job is finished, no state is preserved between jobs, just like with GitHub hosted runners.
Customizable
Define job labels and customize virtual machine resources to fit Your needs. See Configuration for more information.
Create and install a GitHub App (see Creating a GitHub App) with the following permissions:
Note down the GitHub App ID and generate a private key, save it to a file on the host machine, e.g. /root/private-key.pem
.
Download and run the installation script:
curl -sSL https://raw.githubusercontent.com/hostinger/fireactions/main/install.sh -o install.sh
chmod +x install.sh
./install.sh \
--github-app-id=<GITHUB_APP_ID> \
--github-app-key-file="/root/private-key.pem" \
--github-organization="<GITHUB_ORGANIZATION>"
--containerd-snapshotter-device="<DEVICE>"
This creates a default configuration with a single pool named default
with a single runner. See Configuration for more information.
# .github/workflows/test.yaml
name: test
on:
workflow_dispatch:
pull_request:
branches:
- '*'
push:
branches:
- main
jobs:
test:
name: test
runs-on: # The label(s) of the Fireactions pool
- self-hosted
- fireactions
steps:
- name: Example
run: |
echo "Hello, Fireactions!"
See CONTRIBUTING.md for more information on how to contribute to Fireactions.
See LICENSE