Skip to Content
Nextra 4.0 is released πŸŽ‰

πŸ¦‹ 버저닝 및 배포

이 ν”„λ‘œμ νŠΈλŠ” Changesets λ₯Ό μ‚¬μš©ν•˜μ—¬ νŒ¨ν‚€μ§€ 버전 관리와 배포λ₯Ό κ°„μ†Œν™”ν•˜κ³  μžˆμ–΄μš”. ChangesetsλŠ” λͺ¨λ…Έλ ˆν¬ ν™˜κ²½μ—μ„œ 특히 μœ μš©ν•˜λ©°, 각 νŒ¨ν‚€μ§€μ˜ λ³€κ²½ 사항을 μΆ”μ ν•˜κ³  이λ₯Ό 기반으둜 버전을 μ—…λ°μ΄νŠΈν•  수 μžˆλ„λ‘ λ„μ™€μ€˜μš”.

이 λ¬Έμ„œμ—μ„œλŠ” 이 ν”„λ‘œμ νŠΈμ—μ„œ pnpmκ³Ό Changesetsλ₯Ό μ‚¬μš©ν•˜μ—¬ νŒ¨ν‚€μ§€μ˜ 버전을 μ–΄λ–»κ²Œ κ΄€λ¦¬ν•˜κ³  λ°°ν¬ν•˜λ„λ‘ μ„€μ •ν•΄ λ‘μ—ˆλŠ”μ§€μ— λŒ€ν•΄ μ„€λͺ…ν• κ²Œμš”.

πŸ› οΈ 사전 μ€€λΉ„

이 ν”„λ‘œμ νŠΈμ—μ„œ Changesetsλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λͺ‡ κ°€μ§€ 사전 μ€€λΉ„κ°€ ν•„μš”ν•΄μš”. μ•„λž˜ 단계λ₯Ό 따라 μ„€μ •ν•΄ μ£Όμ„Έμš”.

ν•„μˆ˜

선택

  • μ„€μ • > NPM λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ NPM 토큰을 μ„€μ •ν•˜κ³ , μ›Œν¬ν”Œλ‘œμš° λ‚΄μ—μ„œ npm 배포λ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν™œμ„±ν™”ν•΄μ•Ό ν•΄μš”

πŸ”„ 버저닝 및 배포 ν”„λ‘œμ„ΈμŠ€

changeset 기반의 버저닝 및 배포 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 보닀 μžμ„Έν•œ λ‚΄μš©μ€ 곡식 λ¬Έμ„œβ€‰λ₯Ό μ°Έκ³ ν•΄ μ£Όμ„Έμš”.

(1) ✏️ μƒˆ λ³€κ²½ 사항 μΆ”κ°€

λ‘œμ»¬μ—μ„œ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ λ³€κ²½ 사항에 λŒ€ν•œ μ„€λͺ…을 μž‘μ„±ν•  수 μžˆλŠ” ν”„λ‘¬ν”„νŠΈκ°€ λ‚˜νƒ€λ‚˜μš”.

pnpm changeset

ν”„λ‘¬ν”„νŠΈλ₯Ό 따라 λ³€κ²½ 사항을 μž‘μ„±ν•˜λ©΄,

CLI prompt

Changesets λŠ” μƒˆ changeset νŒŒμΌμ„ μƒμ„±ν•˜κ³ , 이λ₯Ό μ»€λ°‹ν•΄μš”.

컀밋changeset
CLI-created-commitCLI-created-changeset

(2) πŸ¦‹ μƒˆ changeset 컀밋이 ν¬ν•¨λœ PR 생성

1) μƒˆ changeset PR μž‘μ„±

μ•žμ„œ λ‘œμ»¬μ—μ„œ μƒμ„±ν•œ μƒˆ changeset μΆ”κ°€ 컀밋을 ν‘Έμ‹œν•˜μ—¬ PR 을 μž‘μ„±ν•΄μ•Ό ν•΄μš”. 그러면 changeset-bot 이 PR 에 ν¬ν•¨λœ μƒˆ changeset 컀밋을 μžλ™μœΌλ‘œ κ°μ§€ν•˜κ³ , PR 에 μ•„λž˜μ™€ 같이 λŒ“κΈ€λ‘œ λ³€κ²½ 사항을 μš”μ•½ν•΄μš”.

changeset-bot-reply-to-pr

changeset 포함 컀밋이 μ—†λŠ” 경우
changeset-bot 이 changeset 컀밋이 ν¬ν•¨λ˜μ§€ μ•Šμ•˜λ‹€λŠ” 사싀을 μ•Œλ €μ£ΌλŠ” λŒ“κΈ€μ„ λ‚¨κ²¨μš”.
changeset-bot-reply-to-pr-2

2) μƒˆ changeset PR 승인

μƒˆ changeset 을 ν¬ν•¨ν•˜λŠ” PR 을 μŠΉμΈν•˜λ©΄ changeset-bot 이 release μ›Œν¬ν”Œλ‘œμš°μ—μ„œ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μš”.

pnpm changeset version

commits-in-pr

이 λͺ…λ Ήμ–΄λŠ” PR 에 ν¬ν•¨λœ λ³€κ²½ 사항을 기반으둜 νŒ¨ν‚€μ§€ 버전(package.json 파일의 version ν•„λ“œ)을 μ—…λ°μ΄νŠΈν•˜κ³ , CHANGELOG.md νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•˜λŠ” 또 λ‹€λ₯Έ 컀밋을 μΆ”κ°€ν•΄μš”.

commits-in-pr

3) μƒˆ changeset 반영 PR 생성

changeset-bot 은 이 컀밋을 λ°”λ‘œ main λΈŒλžœμΉ˜μ— λ³‘ν•©ν•˜λŠ” λŒ€μ‹ , μƒˆ PR 을 μƒμ„±ν•΄μ„œ μ‚¬μš©μžκ°€ λ³€κ²½ 사항을 ν™•μΈν•œ 후에 μˆ˜λ™μœΌλ‘œ μŠΉμΈν•  수 μžˆλ„λ‘ ν•˜κ³  μžˆμ–΄μš”.

changeset-bot-create-pr

μ•„λž˜λŠ” changeset-bot 이 μƒμ„±ν•œ PR 의 μ˜ˆμ‹œμ˜ˆμš”.

pr-created-by-changeset-bot

(3) πŸ¦‹ μƒˆ changeset 반영 PR 승인

μ•ž λ‹¨κ³„μ—μ„œ changeset-bot 이 μƒμ„±ν•œ PR 을 μŠΉμΈν•˜λ©΄ release μ›Œν¬ν”Œλ‘œμš°μ—μ„œ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μš”.

pnpm changeset publish

release-workflow-log

이 λͺ…λ Ήμ–΄λŠ” λ‹€μŒκ³Ό 같은 μž‘μ—…λ“€μ„ μˆ˜ν–‰ν•΄μš”:

1) πŸ“ νŒ¨ν‚€μ§€λ³„ 버전 μ—…λ°μ΄νŠΈ 및 μ—…λ°μ΄νŠΈ λ…ΈνŠΈ μž‘μ„±

  • package.json 에 λͺ…μ‹œλœ version ν•„λ“œκ°€ μ—…λ°μ΄νŠΈλ˜κ³ ,
  • CHANGELOG.md 파일 μ—…λ°μ΄νŠΈκ°€ μ μš©λ˜μš”.

file-changes-by-changesets-versioning

2) 🏷 Release νƒœκ·Έ 생성

PR이 승인되면, GitHub Actionsκ°€ μžλ™μœΌλ‘œ μ‹€ν–‰λ˜μ–΄ 각 νŒ¨ν‚€μ§€μ— λŒ€ν•œ Release νƒœκ·Έλ₯Ό μƒμ„±ν•΄μš”.

created-release-tag

3) πŸš€ npm 배포

μ—…λ°μ΄νŠΈλœ νŒ¨ν‚€μ§€(λ“€)을 npm에 λ°°ν¬ν•΄μš”.
배포λ₯Ό μœ„ν•΄μ„œλŠ” NPM_TOKEN이 GitHub Secrets에 μ„€μ •λ˜μ–΄ μžˆμ–΄μ•Ό ν•΄μš”.

published-npm-packages


Last updated on