사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
일반▾
인터페이스▾
관측성▾
성능▾
네이티브▾
개발▾

빌드 파이프라인

Akan Cloud는 앱마다 build, docker, deploy 순서로 빌드하고 배포합니다. 그 앞뒤에 넣을 stage는 akan.config.ts에 적고, push하기 전에 akan pipeline dry-run으로 결과를 확인합니다.
이 페이지에서 쓰는 말
stage
테스트 실행처럼 이름이 붙은 빌드의 한 단계로, 셸 명령을 하나 이상 담습니다.
builddockerdeploy
Akan Cloud가 앱마다 실행하는 내장 액션으로, { use }로 위치를 정합니다.
plan
설정으로 만든, 빌드 한 번이 실행할 내용입니다. akan pipeline으로 로컬에서 봅니다.
두 개의 파일
앱
그 앱의 stage를 순서대로 적으며, 세 액션도 함께 적습니다.
apps/<app>/akan.config.ts
워크스페이스
모든 앱의 앞뒤에 실행할 stage와 빌드를 마무리할 step입니다.
akan.config.ts
순서
  1. 앱에 stage를 추가합니다.
  2. 모든 앱의 앞뒤에 step을 실행합니다.
  3. step에 시크릿을 줍니다.
  4. push하기 전에 plan을 확인합니다.

앱에 stage 추가하기

앱 설정에 pipeline을 선언합니다. 이 목록이 기본값을 대신하므로, 세 액션을 적고 그 사이 알맞은 자리에 stage를 넣습니다:
apps/web/akan.config.ts
  • 자리가 실행 시점을 정합니다. Test는 build 뒤에 있으므로, 모든 앱의 빌드가 끝난 뒤 이미지를 만들기 전에 실행됩니다.
  • 필요할 때만 실행합니다. when: { branch: "main" }이나 when: { changed: ["apps/web/**"] }를 쓰면 그 브랜치에서만, 또는 그 경로가 바뀐 뒤에만 stage를 실행합니다.
  • 실패해도 되는 검사가 있습니다. allowFailure: true를 쓰면 그 stage가 실패해도 빌드는 실패하지 않습니다.
stage와 step의 키는 앱 설정 › 파이프라인에 모두 있습니다.

모든 앱의 앞뒤에 step 실행하기

워크스페이스 전체 lint, end-to-end 테스트, 채팅 알림처럼 어느 한 앱의 것이 아닌 일은 워크스페이스 루트의 akan.config.ts에 둡니다:
akan.config.ts
  • before는 맨 처음, after는 맨 끝에 실행됩니다. before stage는 모든 앱 stage보다 먼저, after stage는 모든 앱의 마지막 stage 뒤에 실행됩니다.
  • matrix: "apps"는 앱마다 stage를 하나씩 복사합니다. 복사본마다 $AKAN_CI_APP에 자기 앱 이름이 들어갑니다.
  • post는 결과를 따릅니다. 빌드가 끝난 결과에 따라 success, failure, canceled 중 하나의 step을 실행하고, 이어서 always의 step을 실행합니다.

step에 시크릿 주기

step은 webhook URL 같은 자격 증명을 환경변수로 읽습니다. 워크스페이스 루트에서 한 번 올려 둡니다:
Terminal
그다음 위의 Notify step처럼 step의 secrets에 이름을 적고, 스크립트에서 $DISCORD_WEBHOOK를 읽습니다.
  • 값은 쓰기 전용입니다. 숨김 입력, 파이프로 넘긴 stdin, --file 중 하나로 받고, 어떤 명령으로도 다시 볼 수 없습니다.
  • 브랜치마다 다른 값을 둘 수 있습니다. --branch main으로 올린 값은 main 빌드에서만, 모든 브랜치용 값보다 우선해 쓰입니다.
  • 요청한 step만 받습니다. secrets에 그 이름이 없는 step은 값을 볼 수 없습니다.

push 전에 확인하기

akan pipeline은 같은 파일로 Akan Cloud와 같은 plan을 만들 뿐, 아무것도 실행하지 않습니다:
Terminal
  • validate는 잘못된 곳을 알려 줍니다. 오류와 경고마다 파일과 pipeline.action.dockerWithoutBuild 같은 코드가 붙고, 오류가 있으면 종료 코드 1로 끝납니다.
  • 플래그로 빌드를 가정합니다. --branch, --apps, --trigger로 특정 빌드가 무엇을 실행할지 봅니다. 자세한 내용은 파이프라인 명령에 있습니다.

주의할 점

  • 목록이 파이프라인 전부입니다. pipeline에 { use: "deploy" }를 빠뜨린 앱은 빌드만 하고 배포하지 않습니다.
  • 앱 stage는 스스로 완결돼야 합니다. 루트 before stage가 디스크에 남긴 것에 기대지 마세요. 이 워크스페이스에서 미러링한 저장소(subspace)에서 빌드하는 앱은 자기 설정만 가져가므로, 그곳에서는 루트 stage가 실행되지 않습니다.
  • subspace에는 루트에만 있는 경로가 없습니다. scripts/나 infra/처럼 워크스페이스 루트에만 둔 스크립트를 부르는 stage는 그곳에서 실패합니다. 앱 stage가 쓰는 파일은 앱이나 그 라이브러리 안에 둡니다.
  • 시크릿은 프로젝트 하나에 속합니다. subspace는 자기 프로젝트에서 빌드하므로, 그곳의 step이 읽는 시크릿은 그 프로젝트에도 올려야 합니다.

MIT 라이선스 하에 배포되었습니다.

내 AI에 이 문서 연결하기

MCPhttps://akanjs.com/mcp
Copyright © 2026 Akan.js 모든 권리 보유.시스템 관리자bassman