본문으로 건너뛰기

콘솔에서 빌드

플레이그라운드에서 스크립트를 바로 돌려 보고, 파일과 환경, 배치를 콘솔에서 다루는 방법

콘솔의 빌드 메뉴에서 설치 없이 잡을 돌려 볼 수 있습니다. 플레이그라운드 잡도 일반 잡과 같은 경로로 접수되고 같은 요율로 과금됩니다

플레이그라운드

빌드 → 플레이그라운드(/console/workspaces/<워크스페이스>/playground)

  1. 러너는 macOS M4 표준(Apple M4, vCPU 4, 7GB) 하나입니다
  2. Xcode를 고릅니다. 비우면 워크스페이스 기본 Xcode로 시작합니다
  3. 스크립트에 VM에서 실행할 셸을 적습니다. 예: xcodebuild -version
  4. 환경 변수는 한 줄에 하나씩 이름=값으로 적습니다. 예: XENOCI_SCHEME=App
  5. 실행하면 오른쪽 결과 칸에 로그가 흐르고, 끝나면 결과물을 내려받을 수 있습니다

템플릿으로 시작하기에는 예시 4개(러너 확인하기, Swift 패키지 테스트, iOS 시뮬레이터 빌드, 이전 Xcode로 확인)가 있고, 누르면 스크립트와 환경 변수가 채워집니다. 작성 칸의 레시피 목록에서 워크스페이스 레시피를 고르거나, 레시피 화면의 실행 아이콘(?recipe=<id>)으로 열 수도 있습니다

플레이그라운드 잡의 기본 제한 시간은 30분이고, 잡 목록에는 source_kind = playground로 표시됩니다

플레이그라운드는 소스를 올리는 칸이 없습니다. 저장소를 빌드하려면 스크립트 안에서 git clone을 하거나, 소스를 올려야 하는 경우 CLI의 xenocast build --dir를 씁니다

서버 API는 POST /v1/organizations/{org_id}/workspaces/{workspace_id}/playground/runs이고 콘솔 세션 전용입니다(API 키로는 console_only)

필드설명
script필수, 65,536자까지
xcode환경 화면에 있는 버전 중 하나
runnermacos-m4(기본)
timeout_minutes1~360, 기본 30
env이름과 문자열 값
artifacts결과물 경로 글롭, 50개까지

잡

실행 → 잡(/console/workspaces/<워크스페이스>/jobs)에서 이 워크스페이스의 잡을 상태, 소스, 과금 분, 금액과 함께 봅니다. 잡을 열면 로그와 결과물이 나오고, 결과물은 내려받기 아이콘으로 받습니다. 취소하면 VM을 바로 지우고 지금까지 실행한 분만 과금합니다

상태뜻
queued접수됨, queued_reason이 tier_concurrency_limit(동시 실행 한도) 또는 capacity(용량 대기)
preparingVM 준비 중, 아직 과금 전
running스크립트 실행 중, 과금 중
succeeded종료 코드 0
failed스크립트가 0이 아닌 코드로 끝남
cancelled취소됨
credit_exhausted잔액이 떨어져 분 경계에서 멈춤
timed_out제한 시간 초과
platform_error플랫폼 장애, 과금하지 않음

파일

빌드 → 파일(/console/workspaces/<워크스페이스>/files)은 올린 소스 묶음과 잡이 남긴 결과물 목록입니다

  • 파일 업로드: tar.gz나 zip 한 개, 2GB까지. 올린 소스는 잡 하나에 쓰이고 1일 뒤 지워집니다
  • 결과물은 잡이 끝난 뒤 7일 보관되고, 여기서 내려받거나 바로 지울 수 있습니다
  • 대기 중이거나 실행 중인 잡이 쓰는 파일은 지울 수 없습니다

환경

실행 → 환경(/console/workspaces/<워크스페이스>/environments)은 러너 환경 macos-m4의 베이스 이미지, Xcode 목록(기본값 표시), 시뮬레이터 런타임, 지금 빈 슬롯이 있는지(available, busy, unavailable)를 보여 줍니다

기본 Xcode 지정으로 이 워크스페이스에서 xcode를 정하지 않은 잡이 쓸 버전을 고릅니다. 잡의 Xcode는 요청 값, 레시피 기본값, 워크스페이스 기본값, 이미지 기본값 순으로 정해집니다

배치

빌드 → 배치(/console/workspaces/<워크스페이스>/batches)는 Xcode 버전, 시뮬레이터, 스킴 조합마다 잡을 하나씩 한 번에 돌립니다

  • 축은 xcode(10개까지), simulator(20개까지), scheme(20개까지)이고 한 배치는 잡 20개까지입니다
  • 조합 값은 잡에 환경 변수 XENOCI_XCODE, XENOCI_SIMULATOR, XENOCI_SCHEME으로 들어갑니다. 기본 레시피는 이 변수를 읽습니다
  • 소스는 git 저장소만 받습니다(올린 묶음은 잡 하나에만 쓰이기 때문)
  • 동시에 도는 잡 수는 조직 티어의 동시 실행 한도를 따릅니다
  • 잔액이 모든 조합의 1분 요금을 덮지 못하면 뒤쪽 조합부터 insufficient_credit로 거절됩니다

API는 POST /v1/batches, GET /v1/batches, GET /v1/batches/{batch_id}, POST /v1/batches/{batch_id}/cancel이고 API 키(run)로도 부릅니다

다음 단계