본문으로 건너뛰기

GitHub Actions iOS 빌드, runs-on 만 바꿔 나란히 재 봤어요

같은 워크플로를 GitHub 기본 맥 러너와 XenoCI 판매 러너에서 나란히 돌렸더니 iOS 시뮬레이터 빌드는 2.70배, 리눅스 Docker 빌드는 1.94배 빨랐어요, 잰 방법과 한계를 그대로 적었어요

맥 빌드가 느리면 PR 하나 확인하는 데도 한참 기다리게 돼요, 그래서 같은 워크플로를 runs-on 한 줄만 바꿔 GitHub 기본 러너와 XenoCI 판매 러너에서 나란히 돌려 봤어요

결과

빌드GitHubXenoCI배수
맥, iOS 시뮬레이터 빌드1분 52초41초2.70배
리눅스, Docker 이미지 빌드(코드를 바꾼 회차)2분 28초1분 16초1.94배

배수는 회차마다 나란히 돌린 두 잡의 배수를 구해 그 가운데 값을 적었고, 표의 시간은 각 쪽 시간의 가운데 값이에요

무엇을 쟀나

  • 맥: Kingfisher 8.14.0 xcodebuild build-for-testing, 3회
  • 리눅스: umami v3.4.1 docker build, 코드를 바꾼 회차 3회(실제 PR 과 같은 조건)
  • GitHub 쪽은 macos-latest(공개 저장소 기준 M1, CPU 3개, 메모리 7GB)와 ubuntu-latest(공개 저장소 기준 4코어, 메모리 16GB)
  • XenoCI 쪽은 지금 판매 중인 xenoci-standard(M4, vCPU 5, 메모리 7GB)와 xenoci-2vcpu-ubuntu-2404(2 vCPU, 메모리 8GB)
  • 시간은 잡 시작부터 끝까지이고 대기 시간은 뺐어요, 2026-11-02 측정

이 숫자가 말하지 않는 것

  • 같은 사양끼리가 아니라 두 서비스의 표준 러너끼리 비교한 값이에요
  • 리눅스는 같은 커밋을 다시 빌드하면(캐시가 다 맞은 경우) 9.81배였지만, 실제 PR 은 코드가 바뀌니 코드를 바꾼 회차의 1.94배를 대표 값으로 적었어요
  • 앱마다 결과는 달라요, 내 워크플로로 직접 돌려 보시는 게 가장 정확해요

측정 기록

GitHub 쪽 실행 기록은 공개 저장소에 있고 홈의 속도 비교에서 GitHub 측정 기록 링크로 바로 열려요, XenoCI 쪽 실행은 비공개 저장소라 링크를 걸지 않았어요

직접 돌려 보기

jobs:
  build:
-   runs-on: macos-latest
+   runs-on: xenoci-standard
    steps:
      - uses: actions/checkout@v4
      - run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 17e' test
  • 콘솔에 GitHub로 로그인하고 GitHub 조직에 XenoCI 앱을 설치하면 마이그레이션 마법사가 runs-on 을 바꾸는 PR 을 만들어 줘요
  • 맥은 시작한 분마다 50원 부가세 포함이고, 대기와 VM 준비 시간은 차감하지 않아요, VM은 vCPU 5, 메모리 7GB예요
  • 무료 제공 금액은 없고 충전한 만큼만 써요, 조직의 첫 충전은 2배로 적립해요(최대 100,000원 추가), 동시 실행 제한은 없어요
  • 충전은 콘솔에서 5,000원부터 선불로 해요

돌려 보시고 느렸던 단계나 막힌 곳을 알려 주시면 로그를 같이 볼게요