Introduction

This documents our strategy for self-hosted GitHub runners.

What is a Self-Hosted Runner

Self-hosted runners offer more control of hardware, operating system, and software tools than GitHub-hosted runners provide. With self-hosted runners, you can choose to create a custom hardware configuration with more processing power or memory to run larger jobs, install software available on your local network, and choose an operating system not offered by GitHub-hosted runners. Self-hosted runners can be physical, virtual, in a container, on-premises, or in a cloud.

Differences between GitHub-hosted and self-hosted runners

GitHub-hosted runners:

  • Receive automatic updates for the operating system, preinstalled packages and tools, and the self-hosted runner application.

  • Are managed and maintained by GitHub.

  • Provide a clean instance for every job execution.

  • Use free minutes on your GitHub plan, with per-minute rates applied after surpassing the free minutes.

Self-hosted runners:

  • Receive automatic updates for the self-hosted runner application only, though you may disable automatic updates of the runner.

  • You are responsible for updating the operating system and all other software.

  • Can use cloud services or local machines that you already pay for.

  • Are customizable to your hardware, operating system, software, and security requirements.

  • Don’t need to have a clean instance for every job execution.

  • Are free to use with GitHub Actions, but you are responsible for the cost of maintaining your runner machines.

Seagen Self-Hosted Runner Standards

You can add self-hosted runners at various levels in the management hierarchy:

  • Repository-level runners are dedicated to a single repository.

  • Organization-level runners can process jobs for multiple repositories in an organization.

  • Enterprise-level runners can be assigned to multiple organizations in an enterprise account.

Our standard is to use Organization-level runners. Using them at this level with runner-groups is a very simple and efficient way to deploy and manage runners.

Supported operating systems for self-hosted runners

  • Linux

    • Red Hat Enterprise Linux 7 or later

    • CentOS 7 or later

    • Oracle Linux 7

    • Fedora 29 or later

    • Debian 9 or later

    • Ubuntu 16.04 or later

    • Linux Mint 18 or later

    • openSUSE 15 or later

    • SUSE Enterprise Linux (SLES) 12 SP2 or later

  • Windows

    • Windows 7 64-bit

    • Windows 8.1 64-bit

    • Windows 10 64-bit

    • Windows Server 2012 R2 64-bit

    • Windows Server 2016 64-bit

    • Windows Server 2019 64-bit

  • macOS

    • macOS 10.13 (High Sierra) or later

Our operating system standard is Linux. OCI will use Oracle Linux, all other environments should use CentOS

Other Standards