# README
local-runner-controller
Local Runner Controller is an application that builds images, executes containers, and registers runners to GitHub in order to run GitHub Actions runners on local machines. CI/CD can be executed on a local machine without consuming cloud computing resources (e.g. AWS). A GitHub Actions job is executed as a single container, and when the job finishes, the container is deleted and a new container is launched. CI/CD execution based on user actions such as push and pull_request_target can be executed using local machine resources. On the other hand, it is not recommended to use it for jobs that are not based on user operations (more precisely, the user's PC or laptop may be shut down when cron is started), such as cron executions. like: ARC
Prerecuirements
Setup
-
Determine to use GitHub Apps or GitHub personal access tokens
-
Make config.json
{
"github": {
"repository": {
"owner": "OWNER_NAME",
"name": "REPO_NAME"
},
"auth": {
"is_app": true,
"access_token": "github_pat_xxxx",
"app": {
"id": 0,
"installation_id": 0,
"key_path": "/path/to/file_name.private-key.pem"
}
}
},
"runner_limit": 1
}
Configuration's meanings
name | meanings | required | required condition | default |
---|---|---|---|---|
github.repository.owner | Name of the owner of the repository where the runner is registered | true | always | - |
github.repository.name | Name of the repository where the runner is registered | true | always | - |
github.auth.is_app | Whether authentication is done by app or not | false | - | false |
github.auth.access_token | GitHub personal access tokens | true | github.auth.is_app is false | ""(empty) |
github.auth.app.id | GitHub Apps ID | true | github.auth.is_app is true | 0 |
github.auth.app.installation_id | Installation ID of GitHub Apps | true | github.auth.is_app is true | 0 |
github.auth.app.key_path | GitHub Apps private key path | true | github.auth.is_app is true | ""(empty) |
How to start
go run main.go
Author
tkmsaaaam