Repolode
kunchenguid

kunchenguid/runner-up

소유한 Linux, Mac, Windows 장비에서 GitHub Actions self-hosted runner를 운영하고, 작업마다 새 컨테이너·VM·계정을 제공합니다.

대체할 수 있는 제품:GitHub Actions hosted runners

스타
262
포크
17
열린 이슈
2
마지막 커밋
어제

어떤 프로젝트인가요?

runner-up은 GitHub 호스팅 runner 대신 이미 보유한 장비에서 GitHub Actions 작업을 실행합니다. 단일 코디네이터가 runner scale set을 통해 GitHub에 연결하고, 대기 중인 작업을 확인해 각 작업을 장비에서 사용할 수 있는 빈 자리 하나에 할당합니다. 작업마다 Linux에서는 새 Docker 컨테이너나 KVM 가상 머신을, Mac에서는 새 tart 클론이나 Apple container 게스트를, Windows에서는 새 Windows 계정이나 Hyper-V 가상 머신을 사용하며, 작업이 끝나면 해당 환경을 삭제합니다. 자리를 호스트에서 직접 작업을 실행하도록 설정할 수도 있습니다.

코디네이터는 SSH로 각 장비에 접속하며 Kubernetes 클러스터 없이 SSH 액세스만 있으면 됩니다. 각 장비의 코어와 메모리를 추적하고, 장비 소유자가 사용할 자원을 남겨 두며, 저장소 전반의 설정 가능한 규칙에 따라 대기 중인 작업의 순서를 정합니다. 포크에서 온 pull request는 기본적으로 거부합니다. 코디네이터를 재시작해도 실행 중인 작업은 계속되며, 에이전트에 연결할 수 없게 된 장비는 응답이 돌아올 때까지 일시 중지됩니다.

이 프로젝트는 아직 초기 단계이며 공급자별 지원 상태를 문서화하고 있습니다. Linux의 Docker 및 KVM과 Mac의 tart 및 호스트 자리는 실제 작업을 실행해 봤지만, Hyper-V, Apple container 및 Windows 계정 자리는 실험 단계로 표시되어 있습니다. GitHub가 아직 프리뷰로 표시하는 runner scale set API에 의존합니다.

핵심 기능

  • 01각 작업을 새 Docker 컨테이너, KVM VM, tart 클론 또는 Windows 계정에서 실행하고 작업이 끝나면 해당 환경을 삭제합니다.
  • 02Kubernetes 클러스터 없이 SSH로 장비에 연결합니다.
  • 03각 장비의 코어와 메모리를 여러 자리로 나누고, 소유자가 사용할 자원을 남겨 둡니다.
  • 04설정 가능한 규칙에 따라 여러 저장소의 대기 작업 순서를 정합니다.
  • 05포크 pull request에서 발생한 작업을 기본적으로 거부합니다.
  • 06코디네이터를 재시작해도 실행 중인 작업을 계속 유지합니다.

활용 사례

  • 여유 Linux 또는 Mac 장비를 활용해 유료 GitHub 호스팅 runner 사용 시간을 대체합니다.
  • 이미 보유한 Mac에서 macOS 빌드 및 서명 작업을 실행합니다.
  • Kubernetes 클러스터를 관리하지 않고 유휴 사무실 또는 가정용 PC에서 CI 작업을 실행합니다.
  • 자체 하드웨어에서 각 CI 작업에 격리된 환경을 제공합니다.

빠른 시작

  1. 1

    Go로 runner-up을 설치합니다

    go install github.com/kunchenguid/runner-up@latest
  2. 2

    서비스할 저장소와 Linux pool label을 선택합니다

    runner-up init --repo you/app --pool my-linux
  3. 3

    SSH로 연결할 수 있는 머신을 추가합니다

    runner-up machine add box --ssh ci@box
  4. 4

    설정을 확인하고 coordinator를 시작합니다

    runner-up check-config && runner-up serve

사용 전 알아둘 점

  • coordinator는 Linux와 macOS에서만 실행되며 Windows에서는 실행되지 않습니다.
  • Runner scale sets는 GitHub 측에서 아직 프리뷰 단계이므로, GitHub의 변경으로 작동이 중단될 수 있습니다.
  • Hyper-V, Apple container, Windows account, borrowing, draining은 실험적 기능이며 릴리스마다 변경될 수 있습니다.
  • 프로젝트가 아직 초기 단계이며, 일부 provider에서는 실제 작업을 실행해 본 적이 없습니다.

포함된 컬렉션

토픽

자주 묻는 질문

runner-up은(는) 무엇인가요?
소유한 Linux, Mac, Windows 장비에서 GitHub Actions self-hosted runner를 운영하고, 작업마다 새 컨테이너·VM·계정을 제공합니다. runner-up은 GitHub 호스팅 runner 대신 이미 보유한 장비에서 GitHub Actions 작업을 실행합니다. 단일 코디네이터가 runner scale set을 통해 GitHub에 연결하고, 대기 중인 작업을 확인해 각 작업을 장비에서 사용할 수 있는 빈 자리 하나에 할당합니다. 작업마다 Linux에서는 새 Docker 컨테이너나 KVM 가상 머신을, Mac에서는 새 tart 클론이나 Apple container 게스트를, Windows에서는 새 Windows 계정이나 Hyper-V 가상 머신을 사용하며, 작업이 끝나면 해당 환경을 삭제합니다. 자리를 호스트에서 직접 작업을 실행하도록 설정할 수도 있습니다.
runner-up은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
runner-up은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
runner-up은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. runner-up의 마지막 커밋은 2026년 11월 6일입니다.
runner-up은(는) 어디에 사용할 수 있나요?
여유 Linux 또는 Mac 장비를 활용해 유료 GitHub 호스팅 runner 사용 시간을 대체합니다. 이미 보유한 Mac에서 macOS 빌드 및 서명 작업을 실행합니다. Kubernetes 클러스터를 관리하지 않고 유휴 사무실 또는 가정용 PC에서 CI 작업을 실행합니다. 자체 하드웨어에서 각 CI 작업에 격리된 환경을 제공합니다.
runner-up는 어떻게 설치하나요?
Go로 runner-up을 설치합니다: go install github.com/kunchenguid/runner-up@latest 서비스할 저장소와 Linux pool label을 선택합니다: runner-up init --repo you/app --pool my-linux SSH로 연결할 수 있는 머신을 추가합니다: runner-up machine add box --ssh ci@box 설정을 확인하고 coordinator를 시작합니다: runner-up check-config && runner-up serve
runner-up은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/kunchenguid/runner-up

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트