본문으로 건너뛰기

사무실 맥 미니 같은 자체 호스팅 러너에서 XenoCI로 옮기기

직접 등록해 둔 맥 러너의 runs-on을 xenoci-standard로 바꾸는 순서와, 그 맥에 깔려 있던 것을 워크플로로 옮기는 방법을 정리했어요

사무실 맥 미니를 GitHub 자체 호스팅 러너로 등록해 두면 처음에는 편하지만, macOS와 Xcode 업데이트, 디스크 정리, 전원과 잠자기, 러너 프로그램 업데이트를 누군가 계속 챙겨야 해요, 이 글은 그 맥에서 돌던 잡을 runs-on 한 줄로 XenoCI에 옮기는 순서예요

준비

  1. 콘솔에 GitHub로 로그인해요, 가입은 GitHub 로그인만 받아요
  2. 처음 나오는 조직 연결에서 GitHub 조직에 XenoCI 앱을 설치하고 빌드할 저장소를 골라요
  3. 지금 쓰는 자체 호스팅 러너는 그대로 두세요, 옮기는 동안 두 쪽을 함께 쓸 수 있어요

바꾸는 줄

jobs:
  build:
-   runs-on: [self-hosted, macOS, ARM64]
+   runs-on: xenoci-standard
    steps:
      - uses: actions/checkout@v4
      - run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 17e' test

[self-hosted, macOS, ARM64]처럼 라벨 묶음을 쓰셨다면 묶음 전체를 xenoci-standard 하나로 바꿔요, 직접 붙인 라벨(예: office-mac)도 같이 지워야 잡이 XenoCI로 와요

콘솔 GitHub Actions → 마이그레이션 마법사를 쓰시면 저장소와 macOS 잡을 고르고 변경 내용을 확인한 뒤 PR까지 만들어 줘요

그 맥에만 있던 것을 워크플로로 옮기기

XenoCI 잡은 매번 같은 이미지에서 시작해서, 사무실 맥에 손으로 깔아 둔 것은 따라오지 않아요, 옮기기 전에 워크플로가 그 맥의 상태에 기대는 곳을 찾아 주세요

  • 서명 인증서와 프로비저닝 프로필: 키체인에 넣어 둔 것은 저장소 Secrets에 base64로 넣고 잡 안에서 임시 키체인에 가져와요, fastlane match를 쓰셨다면 그대로 써요
  • Homebrew로 깐 도구: 이미지에 없는 것은 brew install 스텝으로 워크플로에 적어 두세요
  • Xcode 버전: 그 맥에 깔린 버전 대신 잡마다 27.0과 26.6 중에서 골라요
  • /Users/내이름/...처럼 그 맥의 경로를 직접 적은 스텝은 $GITHUB_WORKSPACE나 $HOME 기준으로 바꿔요
  • 그 맥 디스크에 쌓여 있던 DerivedData나 Pods 폴더에 기대던 빌드는 actions/cache로 바꿔요, 저장소는 XenoCI 캐시로 바뀌고 조직당 25GB 무료, 7일 동안 안 쓰면 지워져요

옮기는 순서

  1. 잡 하나만 먼저 xenoci-standard로 바꾸고 PR에서 돌려 봐요
  2. 로그에서 빠진 도구나 서명 오류가 나오면 위 목록대로 스텝을 더해요
  3. 나머지 macOS 잡을 하나씩 옮겨요
  4. 더 이상 그 맥으로 가는 잡이 없으면 저장소나 조직 Settings → Actions → Runners에서 자체 호스팅 러너를 지워요

요금과 사양

  • 맥은 시작한 분마다 50원 부가세 포함이고, VM은 vCPU 5, 메모리 7GB예요
  • 무료 제공 금액은 없고 충전한 만큼만 써요, 조직의 첫 충전은 2배로 적립해요(최대 100,000원 추가), 동시 실행 제한은 없어요
  • 자동 결제는 없고 카드 정보도 저장하지 않아요, 충전은 콘솔에서 5,000원부터 선불로 해요

같은 워크플로를 GitHub 기본 러너와 나란히 잰 빌드 시간은 아래 측정 글에 있어요, 사무실 맥과는 사양이 달라 직접 한 번씩 돌려 보시는 게 가장 정확해요

옮기다 막힌 스텝을 알려 주시면 로그를 같이 볼게요