π¦ λ²μ λ λ° λ°°ν¬
μ΄ νλ‘μ νΈλ Changesetsβλ₯Ό μ¬μ©νμ¬ ν¨ν€μ§ λ²μ κ΄λ¦¬μ λ°°ν¬λ₯Ό κ°μννκ³ μμ΄μ. Changesetsλ λͺ¨λ Έλ ν¬ νκ²½μμ νΉν μ μ©νλ©°, κ° ν¨ν€μ§μ λ³κ²½ μ¬νμ μΆμ νκ³ μ΄λ₯Ό κΈ°λ°μΌλ‘ λ²μ μ μ λ°μ΄νΈν μ μλλ‘ λμμ€μ.
μ΄ λ¬Έμμμλ μ΄ νλ‘μ νΈμμ pnpm
κ³Ό Changesets
λ₯Ό μ¬μ©νμ¬ ν¨ν€μ§μ λ²μ μ μ΄λ»κ² κ΄λ¦¬νκ³ λ°°ν¬νλλ‘ μ€μ ν΄ λμλμ§μ λν΄ μ€λͺ
ν κ²μ.
π οΈ μ¬μ μ€λΉ
μ΄ νλ‘μ νΈμμ Changesets
λ₯Ό μ¬μ©νκΈ° μν΄μλ λͺ κ°μ§ μ¬μ μ€λΉκ° νμν΄μ. μλ λ¨κ³λ₯Ό λ°λΌ μ€μ ν΄ μ£ΌμΈμ.
νμ
μ€μ > GitHub Apps > changeset-bot
λ¬Έμλ₯Ό μ°Έκ³ νμ¬ Changesets λ΄μ μ€μ ν΄μΌ ν΄μ.μ€μ > GitHub Actions > λ ν¬μ§ν 리 κΆν μ€μ
λ¬Έμλ₯Ό μ°Έκ³ νμ¬ GitHub Actions κΆνμ μ€μ ν΄μΌ ν΄μ.
μ ν
μ€μ > NPM
λ¬Έμλ₯Ό μ°Έκ³ νμ¬ NPM ν ν°μ μ€μ νκ³ , μν¬νλ‘μ° λ΄μμ npm λ°°ν¬λ₯Ό μ€ννλλ‘ νμ±νν΄μΌ ν΄μ
π λ²μ λ λ° λ°°ν¬ νλ‘μΈμ€
changeset κΈ°λ°μ λ²μ λ λ° λ°°ν¬ νλ‘μΈμ€μ λν λ³΄λ€ μμΈν λ΄μ©μ 곡μ λ¬Έμβλ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ.
(1) βοΈ μ λ³κ²½ μ¬ν μΆκ°
λ‘컬μμ μλμ λͺ λ Ήμ΄λ₯Ό μ€ννλ©΄ λ³κ²½ μ¬νμ λν μ€λͺ μ μμ±ν μ μλ ν둬ννΈκ° λνλμ.
pnpm changeset
ν둬ννΈλ₯Ό λ°λΌ λ³κ²½ μ¬νμ μμ±νλ©΄,
Changesets λ μ changeset νμΌμ μμ±νκ³ , μ΄λ₯Ό 컀λ°ν΄μ.
μ»€λ° | changeset |
---|---|
![]() | ![]() |
(2) π¦ μ changeset 컀λ°μ΄ ν¬ν¨λ PR μμ±
1) μ changeset PR μμ±
μμ λ‘컬μμ μμ±ν μ changeset μΆκ° 컀λ°μ νΈμνμ¬ PR μ μμ±ν΄μΌ ν΄μ. κ·Έλ¬λ©΄ changeset-bot μ΄ PR μ ν¬ν¨λ μ changeset 컀λ°μ μλμΌλ‘ κ°μ§νκ³ , PR μ μλμ κ°μ΄ λκΈλ‘ λ³κ²½ μ¬νμ μμ½ν΄μ.
changeset ν¬ν¨ 컀λ°μ΄ μλ κ²½μ°
changeset-bot μ΄ changeset 컀λ°μ΄ ν¬ν¨λμ§ μμλ€λ μ¬μ€μ μλ €μ£Όλ λκΈμ λ¨κ²¨μ.
2) μ changeset PR μΉμΈ
μ changeset μ ν¬ν¨νλ PR μ μΉμΈνλ©΄ changeset-bot μ΄ release
μν¬νλ‘μ°μμ μλμ λͺ
λ Ήμ΄λ₯Ό μ€νν΄μ.
pnpm changeset version
μ΄ λͺ
λ Ήμ΄λ PR μ ν¬ν¨λ λ³κ²½ μ¬νμ κΈ°λ°μΌλ‘ ν¨ν€μ§ λ²μ (package.json
νμΌμ version
νλ)μ μ
λ°μ΄νΈνκ³ , CHANGELOG.md
νμΌμ μ
λ°μ΄νΈνλ λ λ€λ₯Έ 컀λ°μ μΆκ°ν΄μ.
3) μ changeset λ°μ PR μμ±
changeset-bot μ μ΄ μ»€λ°μ λ°λ‘ main λΈλμΉμ λ³ν©νλ λμ , μ PR μ μμ±ν΄μ μ¬μ©μκ° λ³κ²½ μ¬νμ νμΈν νμ μλμΌλ‘ μΉμΈν μ μλλ‘ νκ³ μμ΄μ.
μλλ changeset-bot μ΄ μμ±ν PR μ μμμμ.
(3) π¦ μ changeset λ°μ PR μΉμΈ
μ λ¨κ³μμ changeset-bot μ΄ μμ±ν PR μ μΉμΈνλ©΄ release
μν¬νλ‘μ°μμ μλμ λͺ
λ Ήμ΄λ₯Ό μ€νν΄μ.
pnpm changeset publish
μ΄ λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ μμ λ€μ μνν΄μ:
1) π ν¨ν€μ§λ³ λ²μ μ λ°μ΄νΈ λ° μ λ°μ΄νΈ λ ΈνΈ μμ±
package.json
μ λͺ μλversion
νλκ° μ λ°μ΄νΈλκ³ ,CHANGELOG.md
νμΌ μ λ°μ΄νΈκ° μ μ©λμ.
2) π· Release νκ·Έ μμ±
PRμ΄ μΉμΈλλ©΄, GitHub Actionsκ° μλμΌλ‘ μ€νλμ΄ κ° ν¨ν€μ§μ λν Release νκ·Έλ₯Ό μμ±ν΄μ.
3) π npm λ°°ν¬
μ
λ°μ΄νΈλ ν¨ν€μ§(λ€)μ npmμ λ°°ν¬ν΄μ.
λ°°ν¬λ₯Ό μν΄μλ NPM_TOKEN
μ΄ GitHub Secretsμ μ€μ λμ΄ μμ΄μΌ ν΄μ.