Skip to content

Declarative runner configuration file (.mac-runner.yml) #51

Description

@nicktallen

Problem

Currently, runners can only be added interactively via the CLI (mac-runner add) or GUI. There's no way to declaratively define a set of runners and have them automatically provisioned. This makes it harder to:

  • Reproduce a runner setup on a new machine
  • Version-control your runner configuration alongside your repos
  • Onboard new team members with a consistent runner setup

Proposed Solution

Support a declarative config file (e.g., ~/.mac-runner/config.yml or .mac-runner.yml in a repo) that defines runners:

runners:
  - repo: omniaura/mac-runner
    name: mac-runner-ci
    labels: [macos, swift]
    isolation: user
    
  - repo: omniaura/other-project
    name: other-ci
    labels: [macos, node]
    isolation: container
    enable-gui: false

A new CLI command (mac-runner apply or mac-runner sync) would reconcile the running state with the config — adding missing runners, removing ones no longer defined, and updating changed settings.

Acceptance Criteria

  • Define a config file schema (YAML or JSON)
  • mac-runner apply reads the config and reconciles runner state
  • mac-runner export generates a config file from existing runners
  • Document the config file format in the README

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:mediumNice to have — address when capacity allows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions