본문으로 건너뛰기

iOS 워크플로를 runs-on 한 줄로 XenoCI에 옮기기

GitHub Actions의 macOS 잡에서 runs-on 한 줄만 xenoci-standard로 바꾸면 나머지 스텝은 그대로 Mac mini M4 위의 새 VM에서 돌아요, 옮기는 순서와 미리 알아 두실 차이를 정리했어요

GitHub가 제공하는 iOS 시작 워크플로(ci/ios.yml)도 runs-on: macos-latest로 시작해요, 이 줄 하나만 바꾸면 나머지 스텝은 그대로 Mac mini M4 위의 새 VM에서 돌아요

준비

  1. 콘솔에 GitHub로 로그인해요, 가입은 GitHub 로그인만 받아요
  2. 처음 나오는 조직 연결에서 GitHub 조직에 XenoCI 앱을 설치하고 빌드할 저장소를 골라요
  3. 개인 계정에는 앱을 설치할 수 없어서 조직이 필요해요, 따로 발급할 키나 시크릿은 없어요

바꾸는 줄

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 Actions → 마이그레이션 마법사를 쓰시면 저장소와 macOS 잡을 고르고 변경 내용을 확인한 뒤 PR까지 만들어 줘요, PR을 병합하고 push하거나 Actions 탭에서 수동 실행하면 콘솔 실행 기록에서 상태와 로그를 볼 수 있어요

그대로 두는 것

  • ubuntu 잡, 시크릿, matrix, actions/checkout 같은 나머지 스텝
  • actions/cache, 저장소는 XenoCI 캐시로 바뀌고 저장소당 25GB 무료, 7일 동안 안 쓰면 지워져요
  • 서명 인증서나 토큰은 지금처럼 저장소 Secrets에 두고 env로 넘기면 돼요

옮기기 전에 확인하실 것

  • 잡 환경: VM은 vCPU 5, 메모리 7GB이고 Xcode는 27.0과 26.6 중 잡마다 골라요
  • 호환 표: GitHub 호스트 macos-15와 나란히 돌려 보았어요, 포크 PR, schedule 실제 실행, fastlane match는 나란히 돌리지 못해 규칙 기준으로 적어 두었어요
  • 라벨 오타: xenoci-mac처럼 조금만 달라도 잡이 GitHub에서 Queued로 남아요
  • 스티키 디스크도 쓸 수 있어요, 요금과 삭제 규칙은 콘솔 스티키 디스크 화면에 있어요

요금

  • 시작한 분마다 50원, 10초면 1분, 1분 1초면 2분으로 계산하고 대기와 VM 준비 시간은 차감하지 않아요
  • 요금은 원화이고 부가세 포함이에요
  • 조직마다 매달 무료 100분(5,000원)이 매월 1일 새로 채워지고 이월되지 않아요, 무료 제공 금액은 한 사람(GitHub 계정)당 한 조직까지예요
  • 무료 제공 금액으로는 잡이 1개씩 돌아요
  • 자동 결제는 없고 카드 정보도 저장하지 않아요, 모자라면 콘솔에서 5,000원부터 선불로 충전해 충전 잔액으로 써요, 요금은 로그인 뒤 콘솔의 결제 화면에 있어요

얼마나 달라지나요

자체 측정(2026년 10월 24일), IceCubesApp Debug 시뮬레이터 빌드를 캐시 없이 돌린 가운데 값은 GitHub macos-latest 8분 42초, XenoCI 3분 2초였어요

한 앱의 Debug 빌드 결과라서 여러분 앱에서는 다를 수 있어요, 같은 커밋을 양쪽에서 한 번씩 돌려 보시는 게 가장 정확해요

옮기다 막힌 곳이나 호환 표에 없는 차이를 찾으시면 알려 주시면 감사드리겠습니다