macOS vs Ubuntu: GitHub Actions Runners

Pradumna SarafPradumna Saraf
2 min read

In case you missed it, GitHub has made macOS Runner available for open source! This means we can now use macOS Runner for free in public repositories. You can read more about it here.

I thought it would be a great opportunity to compare the most commonly used runners - Ubuntu and macOS - and see if it's worth switching all my workflows to macOS runner.

So, the best way to test this is to run the same task on both runners and see the differences. Thus, I wrote a simple GitHub workflow to test the total time duration for a workflow using different runners. Here's the workflow I came up with:

name: macOS Runner Test

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: macos-latest

    steps:
    - name: Print OS Information
      run: |
        echo "Operating System: $(uname -a)"
        echo "Current Directory: $(pwd)"
        echo "List of files: $(ls -l)"

    - name: Execute Script
      run: |
        echo "Running script..."
        # Add your script commands here
        echo "Script execution completed."

The results were as I expected: Ubuntu took the lead. For this workflow to run (for the first time), Ubuntu took 13 seconds to complete it, whereas macOS took 43 seconds, which is more than 3 times longer than Ubuntu. Refer to the screenshots below for reference:

macOS Runner:

macos workflow result

Ubuntu Runner:

Ubuntu workflow result

I tested multiple workflows, and not once did the macOS runner take the lead. So, the point I am trying to make is not that macOS is slow and not useful, but rather, going back to my original point and why I performed this test: Is it worth switching all my workflows to macOS, now that we have two runner options? The answer is NO.

However, this doesn't diminish the power of the macOS runner. There can be a lot of use cases, such as running Swift code or developing an Apple Silicon app and doing specific automation testing, etc., which perform way better on macOS compared to other operating systems.

Thanks for reading, and have a great day! You can also follow me on Twitter.

10
Subscribe to my newsletter

Read articles from Pradumna Saraf directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pradumna Saraf
Pradumna Saraf

Pradumna is a Developer Advocate, Docker Captain, and a DevOps and Go Developer. He is passionate about Open Source and has mentored hundreds of people to break into the ecosystem. He also creates content on X (formerly Twitter) and LinkedIn, educating others about Open Source and DevOps tools. Pradumna enjoys engaging with people in person and delivering talks.