본문으로 건너뛰기

결과물 내려받기

잡이 남긴 ipa, xcarchive, xcresult를 콘솔, CLI, MCP, API에서 받는 방법과 보관 규칙

잡을 보낼 때 artifacts에 적은 경로가 잡이 끝난 뒤 결과물로 모입니다. 결과물은 7일 보관되고 콘솔, xenocast artifacts, MCP logs, REST API로 받습니다

결과물 지정

artifacts는 작업 폴더 기준 경로 글롭의 목록입니다. 50개까지 적을 수 있습니다

경로설명
CLIxenocast build --script ./ci.sh --artifacts 'build/*.ipa,build/*.xcarchive'
MCP build"artifacts": ["build/*.ipa", "TestResults.xcresult"]
액션artifacts: build/*.ipa(쉼표로 여러 개)
API POST /v1/jobs"artifacts": ["build/*.ipa"]

규칙

  • 글롭에 맞는 파일을 모읍니다. 폴더(App.xcarchive, TestResults.xcresult)는 zip으로 묶여 App.xcarchive.zip처럼 저장됩니다
  • 잡 하나당 파일 20개, 합계 2GB까지입니다
  • 결과물마다 sha256이 기록됩니다

콘솔

  • 실행 → 잡에서 잡을 열면 결과물 목록과 내려받기 아이콘이 있습니다
  • 빌드 → 파일은 워크스페이스의 모든 업로드와 결과물을 한 곳에서 보여 주고, 내려받거나 바로 지울 수 있습니다
  • 플레이그라운드의 결과 칸에서도 그 잡의 결과물을 바로 받습니다

CLI

xenocast artifacts job_Ab12Cd34
xenocast artifacts job_Ab12Cd34 --out ./dist

첫 명령은 목록을 JSON으로 출력하고, --out을 주면 모든 결과물을 그 폴더에 저장합니다

[xenocast] App.xcarchive.zip 48.2MB → ./dist

빌드와 받기를 한 번에 하려면 --json으로 잡 ID를 받습니다

xenocast build --script ./archive.sh --artifacts 'App.xcarchive' --json > result.json
xenocast artifacts "$(jq -r .id result.json)" --out ./dist

MCP

logs 도구에 artifacts: true를 주면 로그와 함께 결과물을 out 폴더(기본 ./xenocast-logs)에 받고 각 파일의 경로, 바이트, sha256을 돌려줍니다

{"name":"logs","arguments":{"id":"job_Ab12Cd34","out":"./dist","artifacts":true}}

API

목록

curl -sS https://xenoci.com/api/runner/v1/jobs/job_Ab12Cd34/artifacts \
  -H "Authorization: Bearer $XENOCI_API_KEY" -H 'XenoCI-Error-Format: 2'
{
  "data": [
    { "id": "art_...", "name": "App.xcarchive.zip", "path": "App.xcarchive", "bytes": 50532864, "sha256": "…", "expires_at": "2026-10-18T03:02:45.000Z" }
  ]
}

내려받기

GET /v1/jobs/{job_id}/artifacts/{artifact_id}는 302로 짧게 유효한 내려받기 주소(/api/runner/downloads/<token>)를 돌려줍니다. 그 주소에는 Authorization 헤더를 보내지 않습니다. 링크는 15분 동안만 유효하므로 받을 때마다 다시 요청합니다

curl -sS -L -o App.xcarchive.zip \
  https://xenoci.com/api/runner/v1/jobs/job_Ab12Cd34/artifacts/art_... \
  -H "Authorization: Bearer $XENOCI_API_KEY"

권한은 read 키로 충분합니다. 다른 워크스페이스의 잡은 404입니다

보관과 삭제

항목기간
올린 소스(upl_…)잡이 끝나면 바로 삭제, 쓰이지 않으면 24시간 뒤 삭제
결과물(art_…)잡이 끝난 뒤 7일, expires_at에 표시
내려받기 링크15분
잡 로그잡당 5MB까지 보관

기간 전에 지우려면 콘솔 파일에서 지우거나 DELETE /v1/files/{file_id}(run 키)를 부릅니다. 지난 결과물은 not_found(artifact not found or expired)로 답합니다

다음 단계