Skip to content

CLI 바이너리 릴리즈 파이프라인 — GitHub Actions matrix (Linux / macOS / Windows) + checksums #612

@edwardkim

Description

@edwardkim

배경

이슈 #608 (@almet 의 요청) 에 대한 답신으로 v0.7.10 부터 CLI 바이너리 릴리즈 (rhwp 실행파일) 를 GitHub release assets 으로 첨부하기로 약속.

현재 rhwp 는 6개 배포 채널 (npm @rhwp/core / @rhwp/editor, VS Code Marketplace, Open VSX, Chrome Web Store, Edge Add-ons, AMO) 로 배포 중이지만 CLI 바이너리 (rhwp 실행파일) 는 미배포 — 사용자가 직접 cargo build 로 빌드해야 함.

목적

  • HWP → SVG 변환을 결정적 자동화 파이프라인 / CI / 공공 자산 워크플로우에서 사용 가능하게 함
  • 한컴 환경 없이 바이너리 한 개로 사용 가능 (source of truth)
  • 본 프로젝트 정체성 ("All HWP, Open for Everyone" / "닫힌 포맷의 벽 깨기") 정합

기술 명세

빌드 타깃 (GitHub Actions matrix)

플랫폼 타깃 트리플 산출물
Linux x86_64-unknown-linux-gnu rhwp-vX.Y.Z-linux-x86_64.tar.gz
macOS Intel x86_64-apple-darwin rhwp-vX.Y.Z-macos-x86_64.tar.gz
macOS Apple Silicon aarch64-apple-darwin rhwp-vX.Y.Z-macos-aarch64.tar.gz
Windows x86_64-pc-windows-msvc rhwp-vX.Y.Z-windows-x86_64.zip

각 아카이브에 포함:

  • rhwp 실행파일 (Windows 는 rhwp.exe)
  • LICENSE
  • README.md (간략 사용법)

무결성 검증

  • 각 아카이브에 SHA-256 체크섬 동봉 (SHA256SUMS.txt)
  • 모든 아카이브를 release page 에 일괄 첨부

CI 트리거

  • release 태그 (v*) 푸시 시 자동 트리거
  • 매트릭스 빌드 후 softprops/action-gh-release 또는 cargo dist 로 자산 첨부

본 환경 활용 가능 영역

  • Cargo.toml[[bin]] name = "rhwp" (src/main.rs) 이미 설정됨 — 코드 변경 없이 빌드만 하면 됨
  • 본 환경은 이미 Docker 빌드 (.env.docker + docker compose run wasm) + cargo release 빌드 인프라 활용 중

구현 옵션

옵션 A — cargo dist (권장)

  • cargo dist init 으로 .github/workflows/release.yml 자동 생성
  • Linux / macOS / Windows 매트릭스 + checksums + GitHub Release 자산 첨부 자동
  • Homebrew tap / Cargo install 도 추가 옵션으로 확장 가능

옵션 B — 자체 GitHub Actions matrix

  • .github/workflows/release-binary.yml 직접 작성
  • actions/upload-release-asset 으로 자산 업로드
  • 더 세밀한 제어 가능하나 유지보수 부담 증가

검증

  • v0.7.10 릴리즈 시 4 플랫폼 모든 아카이브 첨부 확인
  • 각 플랫폼에서 rhwp --help + rhwp export-svg samples/exam_eng.hwp 동작 검증
  • SHA-256 체크섬 검증
  • 이슈 Publish releases #608 close + release link 안내 댓글

마일스톤

M100 (v1.0.0) — v0.7.10 patch release 와 함께 진입.

후속 옵션

본 task 가 머지된 후 검토 가능:

  • Homebrew formula (macOS / Linux)
  • cargo install rhwp (crates.io publish)
  • Docker 이미지 (ghcr.io/edwardkim/rhwp:vX.Y.Z)
  • WASM 자산 release 첨부 (현재 npm 만 배포)

참고

  • 답글 이슈: Publish releases #608 (@almet 의 요청)
  • 본 프로젝트 워크플로우: CLAUDE.md
  • 컨트리뷰터 안내: 본 task 는 외부 PR 환영. CI 변경 영역이라 .github/workflows/ + Cargo.toml 수정 정합 권장.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions