GapLib is a robust collection of setup scripts for configuring custom GitHub Actions runners. These scripts are designed to seamlessly adapt to updates in actions/runner
, ensuring compatibility and optimal performance across diverse environments, including VM (host machine), LXD, Docker, and Podman.
This repository also includes source code to create VM images for GitHub-hosted runners widely used in Actions workflows. GapLib supports multiple operating systems and architectures, providing a versatile and scalable solution to meet diverse project requirements.
GapLib supports multiple environments for seamless runner setup:
- VM (host machine): Direct setup on virtual or host machines.
- LXD: Lightweight container-based virtualization.
- Docker: Industry-standard containerization platform.
- Podman: Docker-compatible, daemonless container management.
- ppc64le
- s390x
- x86_64
- Ubuntu: Versions 22.04, 24.04, and 24.10.
- CentOS: Version 9.
run.sh
is the primary script for setting up GitHub Actions runners. It provides an interactive, menu-driven interface for selecting environments, operating systems, versions, and setup types.
- Interactive Menu: Guides users through setup options (VM, LXD, Docker, or Podman).
- Architecture Detection: Ensures compatibility with supported architectures.
- Custom OS and Version Selection: Allows users to tailor setup to specific environments.
- Setup Type Options: Supports Minimal (basic setup) and Complete (full setup) configurations.
-
Clone the repository:
-
Execute the setup script:
bash run.sh
-
Follow the prompts to:
- Select your environment (VM, LXD, Docker, or Podman).
- Choose your OS and version.
- Specify the setup type (Minimal or Complete).
The script provides the following main options:
1. VM (host machine)
2. LXD
3. Docker
4. Podman
5. Exit
Select an option to proceed with the setup.
Choose your preferred operating system and version (Ubuntu or CentOS). If a version is not specified, the script will prompt you for a selection.
- Minimal Setup: Installs only the essential components.
- Complete Setup: Performs a full installation with additional configurations.
If the script encounters an unsupported architecture, it will provide these options:
1. Return to the previous step
2. Exit
- Bash Shell: Required to execute the scripts.
- Sudo Privileges: Necessary for certain setup tasks depending on the environment.
We welcome contributions to enhance GapLib. Here's how you can help:
- Fork the repository.
- Create a new branch for your changes.
- Submit a pull request with detailed information about your updates.
For suggestions, bug reports, or questions, feel free to open an issue in the repository.
With support for multiple architectures, operating systems, and containerized environments, GapLib simplifies and streamlines the process of configuring GitHub Actions runners, making it the go-to solution for diverse project requirements.