마이그레이션
이 가이드는 기존 YAML 워크플로우를 gaji를 사용한 TypeScript로 마이그레이션하는 데 도움을 줍니다.
자동 마이그레이션
gaji는 기존 YAML 워크플로우를 자동으로 TypeScript로 변환할 수 있습니다:
bash
gaji init --migrate이것은:
.github/workflows/에서 기존 YAML 워크플로우 감지workflows/에서 TypeScript로 변환- 원본 YAML 파일 백업 (
.yml.backup) - 사용된 모든 액션에 대한 타입 생성
수동 마이그레이션
수동으로 마이그레이션하려면 다음 단계를 따르세요:
1단계: YAML 분석
간단한 YAML 워크플로우로 시작:
yaml
name: CI
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test2단계: 필요한 액션 추가
bash
gaji add actions/checkout@v4
gaji add actions/setup-node@v43단계: TypeScript로 변환
workflows/ci.ts 생성:
typescript
import { getAction, Job, Workflow } from "../generated/index.js";
const checkout = getAction("actions/checkout@v4");
const setupNode = getAction("actions/setup-node@v4");
const build = new Job("ubuntu-latest")
.addStep(checkout({}))
.addStep(setupNode({
with: {
"node-version": "20",
},
}))
.addStep({ run: "npm ci" })
.addStep({ run: "npm test" });
const workflow = new Workflow({
name: "CI",
on: {
push: {
branches: ["main"],
},
},
}).addJob("build", build);
workflow.build("ci");4단계: 빌드 및 검증
bash
# TypeScript를 YAML로 빌드
gaji build
# 원본과 비교
diff .github/workflows/ci.yml .github/workflows/ci.yml.backup