Ever hit the “Run workflow” button and thought, “My laptop could do this faster”? I did—25 minutes on GitHub-hosted vs. under 5 minutes on my own machine. Yes, seriously. That’s less time than it takes to make good coffee.

How It Works

You install the GitHub Actions Runner on your local machine, register it with your repo, and voilà—you get a new option when running workflows:

  • github-hosted (cloud, default)
  • self-hosted (your laptop, your rules)

Why Bother with Self-Hosted?

My Android internal release went from ~25 minutes on GitHub-hosted to ~5 minutes on self-hosted. That’s a single espresso vs. a never-ending drip coffee experience.

Where to Start

GitHub’s official docs make it easy—trust me, it’s almost painless:

Adding self-hosted runners

In a few minutes and with a handful of commands, you’ll be running workflows on your machine, under your control:

name: Android Internal Release

on:
  workflow_dispatch:
    inputs:
      runner_type:
        description: 'Choose runner type'
        required: true
        default: 'github-hosted'
        type: choice
        options:
        - github-hosted
        - self-hosted

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build-and-deploy:
    runs-on: ${{ github.event.inputs.runner_type == 'self-hosted' && 'self-hosted' || 'ubuntu-latest' }}

[...]

Quick Pro/Con Table

Runner TypeProsWhen to Use
Self-hostedFast, local controlHeavy builds, you want speed
GitHub-hostedNo infra to manage, always availableQuick tests, convenience over speed

TL;DR

Self-hosted runners = 🔥 speed and control. GitHub-hosted = super convenient. Pick based on mood and urgency. Let me know if your coffee breaks just got way shorter. 😉