- always use github runners for lightweight jobs - prefer self-hosted runners in private forks - prefer self-hosted runners for workflows with large matrix