← knowledge.oriz.in

Linux/Ubuntu only on CI runners — never Windows or macOS

rule rulecilinuxrunnerscost

Linux/Ubuntu only on CI runners

The rule

Every .github/workflows/*.yml in every chirag127/oriz* repo uses runs-on: ubuntu-latest (or ubuntu-22.04 / ubuntu-24.04 when pinning matters). runs-on: macos-* and runs-on: windows-* are forbidden unless one of the explicit exceptions below holds.

Why

GitHub Actions billing for free public-repo minutes is uniform on Linux but 10× on macOS and 2× on Windows:

Even when minutes are notionally "free for public repos," the family's [[never-hit-quotas]] rule applies: we architect for headroom, not survival. A single matrix that runs on [ubuntu, macos, windows] consumes 13× the budget of pure Linux. Switching one tool app's CI from ubuntu-latest to [ubuntu-latest, macos-latest, windows-latest] triples the runtime + 13×s the cost basis.

Exceptions

A workflow MAY use a non-Linux runner ONLY when:

  1. Native build for macOS / iOS — requires Xcode. NOT in family scope (per [[ios-pwa-only-no-mac]]).
  2. Native build for Windows MSIX signing — requires Windows runner for signtool.exe. NOT in family scope (PWABuilder handles MSIX from any platform; signing is skipped per [[pwabuilder-as-primary-converter]]).
  3. Cross-platform testing of a CLI that targets all three OSes natively. The family's CLIs are Node.js + npm bin, which run identically on any OS — so even this exception doesn't apply.

In practice: no workflow in the family should use macOS or Windows. If you find one, that's a bug — convert it to ubuntu-latest.

How to enforce

Workarounds for things that "feel like" they need macOS/Windows

Cross-refs