# XenoCI XenoCI: GitHub Actions에서 Mac mini M4 러너로 iOS와 macOS 빌드와 테스트를 실행하는 서비스 ## 판매 상품 - GitHub Actions 맥 러너: Mac mini M4 (Apple M4, vCPU 4개, 메모리 7GB), Xcode 27.0, 26.6, iOS 시뮬레이터 - 요금: 1크레딧 = 1,000원 (부가세 포함), 분당 0.05크레딧 (50원), 시작한 분마다 차감, 대기와 VM 준비 시간은 차감하지 않음 - 결제: 크레딧만 씀, 매달 무료 5크레딧을 먼저 쓰고(무료는 조직마다, 그리고 한 사람(GitHub 계정)당 한 조직까지), 그다음 보상 크레딧, 그다음 충전한 크레딧, 충전은 콘솔에서 카드로 1,000원 단위, 자동 결제 없음, 잔액이 0이면 빌드 중단 - 보상 크레딧: 행사나 보상으로 따로 드리는 크레딧, 충전 크레딧처럼 쓰고 환불하지 않음 - 동시 실행: 무료 크레딧으로는 조직마다 잡 1개씩 실행, 두 번째 잡부터는 충전 크레딧이나 보상 크레딧이 있으면 바로 시작해 끝날 때까지 충전 크레딧이나 보상 크레딧에서 차감, 없으면 무료 자리가 빌 때까지 대기(대기 시간은 차감하지 않음), 충전 크레딧이나 보상 크레딧으로 도는 잡은 빈 맥 자리만큼, 대기 이유는 GitHub 체크와 Slack으로 알림 - 잡 길이: 잡 하나는 무료와 유료 모두 최대 6시간, 넘으면 멈추고 실패 처리, 24시간 동안 시작하지 못한 잡은 자동 취소(과금 없음) - Actions 캐시: 조직당 25GB 무료(조직의 모든 저장소 합계), 7일 미사용 삭제, 초과 요금과 확장 상품 없음, 조직 삭제가 확정되면 바로 지움 - 스티키 디스크: 무료 용량 없이 처음 1GB부터 GB당 월(30일) 500원, 하루 단위 차감, 충전한 크레딧에서만 차감, 7일 미사용 삭제, 조직당 모두 합쳐 100GB까지, 충전한 크레딧이 다음 하루분 요금보다 적으면 바로 삭제(실행 중인 잡이 쓰는 디스크는 그 잡이 끝난 뒤), 삭제 전에 메일과 Slack으로 미리 알림, 자리가 없으면 새 디스크를 만들지 않고 잡은 디스크 없이 실행 - Git 체크아웃 캐시: 스티키 디스크와 같은 요금(GB당 월 500원, 하루 단위 차감), 7일 미사용 삭제 ## 붙이는 법 1. https://dev2.xenoci.com/console 에 GitHub로 로그인하고 GitHub App을 GitHub 조직에 설치하고 빌드할 저장소를 고릅니다, 개인 계정에는 설치할 수 없고 따로 발급할 키나 시크릿은 없습니다 2. 매달 무료 크레딧으로 바로 실행할 수 있습니다, 모자라면 콘솔 결제 설정에서 크레딧을 충전합니다 3. 저장소의 .github/workflows/xenoci.yml (또는 .github/workflows/ 아래 다른 .yml 파일)에서 macOS 잡의 runs-on 을 xenoci-macos 로 바꿉니다, 나머지 스텝은 그대로입니다 4. push 하거나 GitHub Actions 탭에서 수동 실행하고, 콘솔 실행 기록에서 잡 상태와 로그를 봅니다 최소 예시: ```yaml # .github/workflows/xenoci.yml name: iOS build on: [push, workflow_dispatch] jobs: build: runs-on: xenoci-macos timeout-minutes: 60 steps: - uses: actions/checkout@v4 - run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 17e' test ``` - 빠른 시작: https://dev2.xenoci.com/docs/quickstart - 러너: https://dev2.xenoci.com/docs/runners - 요금: https://dev2.xenoci.com/docs/pricing ## 문서 - [문서 홈](https://dev2.xenoci.com/docs) - [전체 문서 (마크다운 원문)](https://dev2.xenoci.com/llms-full.txt) ### 러너 - [XenoCI 소개](https://dev2.xenoci.com/docs/intro): GitHub Actions에서 macOS 빌드와 테스트를 실행합니다 - [빠른 시작](https://dev2.xenoci.com/docs/quickstart): 워크플로의 runs-on 한 줄을 xenoci-macos로 바꿔 첫 macOS 실행을 확인합니다 - [GitHub Actions 호환 표](https://dev2.xenoci.com/docs/github-actions-compat): runs-on을 xenoci-macos로 바꿨을 때 macos-15 호스트 러너에서 되던 워크플로 기능이 그대로 되는지, 다른 점과 대안을 정리합니다 - [Expo EAS 로컬 빌드](https://dev2.xenoci.com/docs/expo-eas): Expo 계정 없이 Expo 앱의 iOS 시뮬레이터 빌드를 XenoCI Mac에서 실행하고, 필요하면 eas build --local도 같은 러너에서 돌립니다 - [Xcode Cloud에서 옮기기](https://dev2.xenoci.com/docs/migrate-xcode-cloud): 클라우드 빌드 시간이 바닥났을 때 ci_scripts를 그대로 돌리는 GitHub Actions 워크플로를 만들어 runs-on xenoci-macos에서 빌드합니다 - [XCTest 샤딩](https://dev2.xenoci.com/docs/test-sharding): 테스트 파일을 여러 잡 또는 한 VM의 시뮬레이터로 나누고 xcresult를 합칩니다 - [GitHub macOS 분이 바닥났을 때](https://dev2.xenoci.com/docs/github-macos-minutes): GitHub 호스티드 macOS 잡이 분이나 지출 한도 때문에 시작되지 않으면 같은 워크플로를 runs-on xenoci-macos로 옮기는 PR을 한 번에 엽니다 - [러너 개요](https://dev2.xenoci.com/docs/runners): XenoCI의 macOS 러너와 고를 수 있는 Xcode, 시뮬레이터 런타임, 요금을 한 화면에서 확인하세요 - [요금](https://dev2.xenoci.com/docs/pricing): macOS 러너 요금과 선불 크레딧, 매달 무료 크레딧, 충전과 환불을 확인합니다 ### 리소스 - [XenoCI와 GitHub 호스티드 macOS 러너 비교](https://dev2.xenoci.com/docs/resources/github-macos): GitHub Actions의 macOS 잡을 어디서 돌릴지 고를 때 볼 수 있게 두 러너의 공개된 사양, 요금, 한도를 나란히 놓았습니다 - [GitHub Actions 비교 측정 방법](https://dev2.xenoci.com/docs/resources/benchmark): 홈의 2.3배 빠름과 74% 절약이 어떤 앱과 러너와 계산으로 나왔는지 설명합니다 - [GitHub Actions 맥 러너 비용 계산하기](https://dev2.xenoci.com/docs/resources/github-actions-mac-runner-cost): macOS 러너의 분당 요금과 무료 사용량을 공식 문서 원문으로 확인하고, iOS 빌드 한 번이 원화로 얼마인지 실측 숫자로 계산합니다 - [iOS CI 빌드가 느릴 때 GitHub Actions에서 줄이는 방법](https://dev2.xenoci.com/docs/resources/ios-ci-build-slow): iOS 빌드가 오래 걸리는 구간을 나눠 보고, 캐시 설정과 러너 선택으로 빌드 시간을 줄이는 방법을 실측 숫자와 함께 정리합니다 - [GitHub Actions macos-14 러너 종료 대응](https://dev2.xenoci.com/docs/resources/macos-14-runner-retirement): macos-14 러너 이미지가 2026년 11월 2일에 종료됩니다, 일시 중단 일정과 바꿔야 할 runs-on 라벨, Xcode 버전 확인 방법을 정리합니다 - [Expo EAS 빌드 비용과 GitHub Actions로 iOS 빌드하기](https://dev2.xenoci.com/docs/resources/expo-eas-build-cost): Expo EAS 요금제의 iOS 빌드 조건을 공식 원문으로 확인하고, Expo 계정 없이 워크플로로 iOS 시뮬레이터 빌드를 돌린 실측 시간과 비용을 정리합니다 - [Fastlane과 GitHub Actions로 TestFlight 자동 업로드](https://dev2.xenoci.com/docs/resources/fastlane-testflight-github-actions): App Store Connect API 키와 fastlane match로 macOS 잡에서 iOS 앱을 서명하고 TestFlight에 자동으로 올리는 워크플로와 Fastfile을 정리합니다 - [맥미니로 iOS CI 서버 구축하기, GitHub Actions 셀프 호스티드 러너](https://dev2.xenoci.com/docs/resources/mac-mini-ci-server): 맥미니를 셀프 호스티드 러너로 등록하는 순서와 워크플로, 운영하며 챙겨야 할 일을 정리하고 분 단위 macOS 러너와 무엇이 다른지 비교합니다 ## 블로그 - [GitHub Actions에서 eas build --local을 Mac mini M4 러너로 돌리기](https://dev2.xenoci.com/blog/eas-build-local-github-actions): Expo가 안내하는 eas build --local을 runs-on: xenoci-macos 잡에서 돌리는 워크플로와, Expo 문서에 적힌 로컬 빌드의 한계를 정리했어요 - [iOS 워크플로를 runs-on 한 줄로 XenoCI에 옮기기](https://dev2.xenoci.com/blog/github-actions-ios-runs-on-xenoci): GitHub Actions의 macOS 잡에서 runs-on 한 줄만 xenoci-macos로 바꾸면 나머지 스텝은 그대로 Mac mini M4 위의 새 VM에서 돌아요, 옮기는 순서와 미리 알아 두실 차이를 정리했어요 ## 사이트 - [요금제](https://dev2.xenoci.com/pricing) - [콘솔](https://dev2.xenoci.com/console) - [서비스 상태](https://dev2.xenoci.com/status) - [변경 기록](https://dev2.xenoci.com/changelog) - [자주 묻는 질문](https://dev2.xenoci.com/faq) - [이용약관](https://dev2.xenoci.com/terms) - [개인정보처리방침](https://dev2.xenoci.com/privacy) - [환불 정책](https://dev2.xenoci.com/refund)