Skip to Content
가이드첫 워크플로우

첫 워크플로우

이 문서는 실용적인 워크플로우 한 개를 처음부터 끝까지 따라 만들어 봐요.
주제는 “Node.js 앱을 빌드하고 Docker 이미지로 푸시”예요.

파일 위치

Agent는 30초마다 ./workflows/ 디렉토리를 스캔해요.
파일 확장자는 .yaml 또는 .yml을 인식해요.
파일명과 워크플로우의 name은 일치해야 해요. deploy-prod.yaml 안에는 name: deploy-prod가 들어가야 해요.

이름 규칙

항목정규식
워크플로우 name^[a-z0-9][a-z0-9_-]{0,63}$deploy-prod, backup_db
Step name^[A-Za-z0-9][A-Za-z0-9 _.-]{0,63}$Build App, Run Tests

최소 예제

name: hello steps: - name: greet run: echo "Hello, Deplite!"

이게 끝이에요. 다른 모든 필드는 선택사항이에요.

모든 필드를 사용한 예제

name: deploy-prod timeout-minutes: 30 # 전체 timeout (기본 60분) log_retention: 30 # 로컬 로그 보관 개수 (기본 20) force_allowed: true # force=true 명령 허용 여부 (기본 true) env: # 모든 step에 적용되는 환경변수 DEPLOY_ENV: production LOG_LEVEL: info secrets: # 마스킹되는 환경변수 이름 목록 - DATABASE_URL - SLACK_WEBHOOK - DOCKER_PASSWORD limits: - type: cooldown after: 5m # 마지막 실행 후 5분 쿨다운 on: success # success | any - type: bucket capacity: 5 # 최대 5번 refill: 1/1h # 1시간마다 1개 충전 steps: - name: Build Image run: | docker build -t myapp:$REF . working-directory: /app # cd 후 실행 timeout-minutes: 10 # step별 timeout (기본 10분) log_level: verbose # silent | summary | verbose (기본 summary) - name: Push run: | echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker push myapp:$REF timeout-minutes: 15 - name: Smoke Test run: | curl -f https://app.example.com/health || exit 1 continue-on-error: true # 실패해도 다음 step 진행

시크릿은 어떻게 처리되나요?

secrets:에 나열한 이름은 두 가지 효과가 있어요.

  1. 로그 마스킹: stdout에서 해당 값이 발견되면 ***로 가려져요.
  2. 서버 미전송: 어떤 경우에도 시크릿 값은 서버로 가지 않아요.

시크릿 자체는 Agent 머신의 환경변수나 .env 파일로 주입해야 해요.
Docker로 운영한다면 --env-file 또는 K8s Secrets를 사용하세요.

환경변수 우선순위

  1. Step의 env:
  2. 워크플로우 전역 env:
  3. Agent 프로세스 환경변수 (시스템·.env)

같은 키가 여러 곳에 있으면 위쪽이 이겨요.

트리거에서 전달되는 값

Webhook이나 chat에서 보낸 refparams는 step의 환경변수로 들어와요.

  • REF — 트리거의 ref 값 (예: git branch)
  • PARAMS_<KEY> — 트리거의 params.<key>
  • DEBUG — 트리거가 debug: true로 호출된 경우 1

등록과 갱신

새 파일을 만들거나 수정해도 따로 재시작은 필요 없어요.
Agent가 30초 안에 자동으로 다시 스캔하고 서버에 변경 사항을 보고해요.

즉시 반영이 필요하면 대시보드의 Workflows → Refresh 버튼을 누르세요.

다음으로

최종 수정 일자: