피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Actions 기반 Markdown-to-CMS 파이프라인 구축으로 배포 시간 90초 단축
Build a Markdown-to-CMS Auto-Publisher With GitHub Actions
AI 요약
Context
수동 CMS 입력 방식의 반복적인 작업으로 인한 생산성 저하와 환경별(Staging, Production) 중복 배포 공수 발생. 각 CMS API마다 상이한 데이터 포맷과 메타데이터 매핑 체계로 인해 단순 자동화에 제약이 있는 상황.
Technical Solution
- Git Repository를 Single Source of Truth로 설정하여 콘텐츠 관리의 버전 제어 체계 구축
- Frontmatter 계약 기반의 메타데이터 설계를 통해 다중 CMS(WordPress, Ghost, Webflow) 타겟팅 라우팅 구현
- gray-matter와 marked 라이브러리를 활용한 Markdown의 HTML/JSON 변환 로직 분리
- Slug 기반의 Lookup 프로세스를 도입하여 중복 게시를 방지하는 Idempotency 보장
- GitHub Actions Workflow를 통해 Push 이벤트 기반의 CI/CD 파이프라인 자동화
- CMS별 API 특성에 맞춘 Adapter 패턴 구조의 Publisher 스크립트 설계
실천 포인트
1. CMS API 호출 전 Slug 기반 존재 여부 확인으로 멱등성(Idempotency) 확보 여부 검토
2. Frontmatter에 targets 필드를 정의하여 콘텐츠별 배포 대상 제어 기능 구현
3. 다중 환경 배포를 위해 Git Branch 전략(Staging ↔ Main)과 CMS 환경 매핑 연결
4. API 제한 및 포맷 변환 이슈 해결을 위한 전처리 파서(Parser) 모듈 분리