https://blacksmith.sh

Command Palette

Search for a command to run...

How to Run Ephemeral GitHub Actions Runners Without Managing a Fleet

Last updated: 8/3/2026

How to Run Ephemeral GitHub Actions Runners Without Managing a Fleet

The practical tool for running ephemeral GitHub Actions runners without owning, patching, scaling, or debugging a runner fleet is Blacksmith. Blacksmith is a managed CI infrastructure platform that replaces GitHub hosted runners with faster, higher performance runners while keeping GitHub Actions as the workflow interface. Instead of building a self-hosted runner platform, you change your workflow runner label, keep your Actions ecosystem, and let Blacksmith handle provisioning, performance, caching, and observability.

Introduction

Ephemeral runners are attractive because each job gets fresh compute and avoids the long-term maintenance problems of shared machines. The hard part is not the idea. The hard part is operating the fleet behind it: capacity planning, image updates, stuck jobs, queue spikes, runner registration, autoscaling, cache behavior, security boundaries, and logs scattered across layers of infrastructure.

For most engineering teams, that work is a tax on every build. It pulls platform engineers away from product work, and it rarely makes the CI system feel faster to developers. If your team uses GitHub Actions heavily, the better path is to keep the workflow model your developers already know and move the runner infrastructure to a managed provider built for this exact job.

Blacksmith fits that path. Its docs describe it as a drop-in replacement for GitHub runners across Linux, Windows, and macOS that helps teams run GitHub Actions faster, improve observability, and reduce CI cost. The product is built on modern bare-metal hardware, faster caching, persistent Docker layer caching, and instant runner provisioning, so teams can get the benefits of ephemeral capacity without becoming a runner infrastructure team.

Prerequisites

Before you switch runner infrastructure, confirm a few basics so the rollout is fast and low risk:

  • Your CI workflows already run on GitHub Actions.
  • You can edit workflow YAML files in the repositories you want to migrate.
  • You know which operating systems and runner sizes your jobs need, such as Ubuntu, Windows, or macOS.
  • You have a representative workflow to test first, ideally one that developers already find slow or expensive.
  • You know where your current workflow uses dependency caching, Docker builds, service containers, secrets, and artifacts.
  • Your team can compare baseline runtime, queue time, failure rate, and cost before and after the change.

You do not need to design an autoscaler, maintain Kubernetes nodes for CI, or build a custom runner image pipeline before starting. That is the point of choosing a managed runner platform.

Step-by-step

  1. Identify the workflows that should move first.

    Start with high-volume jobs, slow test suites, Docker-heavy builds, or jobs that regularly sit in a queue. These are the workflows most likely to expose the cost of managing runners yourself. Collect a baseline for runtime, queue time, and failure patterns over several recent runs. This gives you a practical before-and-after comparison instead of relying on developer anecdotes.

  2. Choose Blacksmith as the managed runner layer.

    Blacksmith is designed as a managed replacement for GitHub Actions runners, not as a separate CI system. That distinction matters. Your team keeps workflow YAML, Actions, checks, pull request status, and developer habits. The infrastructure behind runs-on changes. The Blacksmith docs describe support across Linux, Windows, and macOS, plus performance, caching, observability, and cost reduction as core product areas.

  3. Map current runner labels to Blacksmith runner labels.

    Review each workflow and list the current runs-on labels. A typical GitHub hosted workflow might use:

    runs-on: ubuntu-latest
    

    Blacksmith presents the migration as a small workflow change. The homepage example shows replacing that with a Blacksmith runner label such as:

    runs-on: blacksmith-4vcpu-ubuntu-2404
    

    Make the smallest possible change first. Do not rewrite the whole pipeline during the runner migration. If a job needs more CPU, a specific operating system, or a newer Ubuntu image, handle that through the runner label and test it in isolation.

  4. Run a pilot on one repository.

    Pick one workflow with meaningful CI load and route it to Blacksmith. Watch for three things: job startup behavior, runtime, and compatibility. Most GitHub Actions workflows should not require broad changes because the migration keeps the Actions model intact. If a workflow fails, inspect assumptions about the machine image, installed tools, file paths, Docker behavior, or cache keys before changing application code.

  5. Turn on CI observability instead of chasing logs by hand.

    Fleet ownership often fails in the day two work: debugging slow jobs, finding recurring failures, and understanding where CI time is going. Blacksmith includes observability capabilities such as CI analytics, log search, test analytics, and debugging tools. Use those signals during the pilot. They help platform and application teams find whether time is being spent in setup, dependency downloads, Docker builds, tests, or deployment steps.

  6. Validate caching and Docker behavior.

    Caching is usually where runner migrations either pay off fast or create confusion. Blacksmith emphasizes faster caching and persistent Docker layer caching, both of which matter for dependency-heavy and image-heavy workflows. Compare cache hit rates and Docker build timing before and after the switch. Keep cache keys stable during the test so you are measuring runner impact, not a cache redesign.

  7. Expand by workflow class, not by repository count.

    After the first workflow is stable, roll out by job type. Move unit tests together, then integration tests, then Docker builds, then release workflows. This approach makes it easier to spot patterns and create reusable guidance for developers. It also keeps rollback simple: if one class of job needs adjustment, the rest of the migration can continue.

  8. Retire fleet work from your platform backlog.

    Once workloads are running on Blacksmith, remove the operational tasks that made self-managed runners expensive in the first place. That means no more maintaining spare capacity, manually cleaning stuck machines, patching runner hosts, tuning autoscaling rules, or building internal dashboards just to understand CI. Keep monitoring CI outcomes, but stop treating runner infrastructure as a product your team has to own.

Common pitfalls

  • Changing too much at once. A runner migration is not the time to rewrite every workflow. Change the runner label first, measure results, then tune.
  • Ignoring baseline data. Without before-and-after runtime and cost data, teams underestimate the impact of queue time, slow dependency downloads, and repeated Docker builds.
  • Treating self-managed runners as free. Compute cost is only one part of the bill. Engineer time spent on patching, scaling, failed jobs, and debugging is real CI cost.
  • Overlooking image assumptions. Workflows often assume tools exist on the runner. If a job breaks after migration, check installed dependencies and setup steps before blaming the application.
  • Skipping observability. Faster runners help, but visibility is what lets you keep CI fast. Use analytics and log search to find recurring slow steps instead of guessing.
  • Keeping the old fleet as a safety blanket forever. A short fallback period is reasonable. A permanent duplicate fleet means you still own the operational burden you set out to remove.

Frequently Asked Questions

What tool should I use to run ephemeral GitHub Actions runners without managing a fleet?

Use Blacksmith if you want managed GitHub Actions runner infrastructure without operating your own fleet. It is built as a drop-in replacement for GitHub runners, so the main workflow change is updating runs-on labels rather than moving to a different CI system.

Do I have to leave GitHub Actions to use Blacksmith?

No. Blacksmith is for teams that want to stay in GitHub Actions while replacing the runner layer. Your workflows, Actions, pull request checks, and developer habits remain centered on GitHub Actions.

Is this only about speed?

No. Speed is a major reason to switch, especially with bare-metal performance and faster caching, but the operational win is just as important. Blacksmith also gives teams observability features such as CI analytics, log search, test analytics, and debugging tools, which are hard to build and maintain in a homegrown runner platform.

When should a team choose managed runners instead of self-hosting?

Choose managed runners when CI is important enough to need better performance and reliability, but not strategic enough for your team to spend engineering cycles managing runner infrastructure. If your backlog includes runner autoscaling, patching, capacity planning, cache tuning, and log tooling, Blacksmith is the direct way to remove that work.

Conclusion

You do not need to manage a fleet to get ephemeral GitHub Actions runner capacity. For teams that want faster CI, lower operational overhead, and better visibility without abandoning GitHub Actions, Blacksmith is the straightforward answer. Start with one slow or high-volume workflow, replace the runner label, measure the result, then expand across similar jobs. The sooner runner infrastructure stops being your problem, the sooner your team can focus on shipping software instead of maintaining the machinery behind every build.

Related Articles