
GitHub Actions Workflow Lockfiles Are Coming
If you’ve ever pushed code to a GitHub repository and seen tests or deployments trigger automatically, you’ve already experienced the magic of GitHub Actions. But what powers those workflows behind the scenes?
The unsung hero is the GitHub Actions runner. Whether you’re a solo developer or part of a large engineering team, understanding runners is key to optimizing your CI/CD pipelines, reducing costs, and improving performance.
In this guide, we will present:
Let’s dive in :
A GitHub Actions runner is the compute environment—usually a virtual machine or container—that carries out the steps defined in your GitHub workflow.
Every time a workflow is triggered (like when you push code), GitHub uses a runner to process the instructions in your .github/workflows/*.yml file.
Think of it like the backstage crew making your CI/CD performance seamless.
Let’s look at a simple example:
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Run tests
run: npm testThe line runs-on: ubuntu-latest tells GitHub to use a GitHub-hosted runner with Ubuntu. If you want to use a custom or third-party runner (like Tenki), you just update that line, like below
on: [push]
jobs:
build:
runs-on: tenki-standard-autoscale
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test💡 Tip: This small change unlocks more powerful hardware, faster builds, cost efficiency, seamless migration, and maintenance-free runners—all powered by Tenki.
These are managed entirely by GitHub. Each job runs on a fresh virtual machine.
Pros:
Cons:
Best for: Small projects, automation exploration, very basic needs
These are runners you install and manage on your own infrastructure (e.g., on-prem servers, your cloud VMs).
Pros:
Cons:
Best for: Advanced teams with DevOps skills and very specific needs
Third-party services offer the flexibility of self-hosted runners with the ease of cloud-based CI.
Pros:
Cons:
Best for:Teams looking to scale CI/CD with low ops effort and full control.
Tenki combines the power and flexibility of self-hosted runners with the simplicity of cloud-based CI/CD—offering seamless migration, zero-maintenance infrastructure, and a developer-friendly experience out of the box.
Pros:
Cons:
Best for: Designed for teams or individuals who want to scale CI/CD with minimal ops overhead and complete control.
Feature | GitHub-Hosted | Self-Hosted | Tenki (Third-Party) |
|---|---|---|---|
Setup | None | Manual | Dashboard/API |
Performance | Basic (2-core) | Depends on Hardware | High (autoscaled) |
Autoscaling | No | DIY | Yes |
Isolation | Per-job VMs | Varies | Ephemeral runners |
Custom Hardware | No | Yes | Yes |
Maintenance | GitHub | Your team ⏱️ | Tenki handles it 🪄 |
Cost Efficiency | Low at scale | Variable | Transparent, optimized |
A common misconception is: "More CPU cores = faster builds."
While that can be true for some jobs, real performance depends on several factors:
💡Tips: Manual sizing often leads to overprovisioning or bottlenecks. Tenki solves this by autoscaling per job—giving each workflow the exact compute resources it needs, without waste.
Team Size | GitHub-Hosted Est. | Tenki Est. |
|---|---|---|
Solo (1,500m) | $20+ | $0 (Free credits) |
Small (5,000m) | $50–100 | $0 (Free credits) |
Medium (25,000m) | $250–500 | ~$125 |
Large (100,000m) | $1,000+ | ~$400 |
Tenki Pricing Advantages:
Self-hosted runners can save money but often come with serious operational overhead:
Tenki removes all that.
You get:
runs-on: tenki-standard-autoscale👆That’s all you need to get started.
💡Tips: Looking to cut costs or boost engineering productivity? Tenki makes it easy to save time and money!
👉 Start free at https://app.tenki.cloud/auth/registration
runs-on label to match your Tenki runner.Workflow: An automated process defined in a .yml file under .github/workflows, triggered by events like pushes or pull requests.
Job: A group of steps that execute on the same runner.
Step: An individual command or action, like installing dependencies or running tests.
Runner: The virtual machine (VM) or container that executes jobs in your workflow.
Queue Time: The waiting period before a job starts running.
Execution Time: The time it takes to complete a job once it begins.
Concurrency: The number of jobs that can run simultaneously.
Ephemeral Runner: A runner created for a single job, then automatically destroyed.
Autoscaling: Dynamically increasing or decreasing the number of runners based on demand.
Provisioning: Setting up and launching the compute resources needed for a runner.
Recommended for you
What's next in your stack.
GET TENKI