Introduction

GitHub Actions Self-hosted Runner #

Hello there, please follow the navbar on the left to start your exploration!

Images #

This repo provides the following images, both are Multi-Arch(amd64/arm64 supported):

  • knatnetwork/github-runner:focal-<tag>
  • ghcr.io/knatnetwork/github-runner:focal-<tag>

<tag> is related to the https://github.com/actions/runner/tags, for example, you may expect a image called knatnetwork/github-runner:focal-2.290.1 when v.2.290.1 is released.

Specs #

  • Images are based on Ubuntu 20.04

Usage #

  1. Prepare your GitHub Personal Access Token, which looks like ghp_xxxxxxxxxxxxx with admin:org permission(If you’d like to register runner to repo, your user must have Admin permission on the related repo), if you don’t know how to do it, you can refer to Creating a personal access token
  2. If you’d like to register runner on a single machine, you can follow the quick start here.
  3. If you need to spread multiple runners on multiple nodes using K8s, please take a look at the here.

Topology #

The whole design is to minimize secret crendential leak on the Runner instance, so a service called ‘KMS’ is used for handling runner registration(The PAT is only stored on ‘KMS’)