npmμΌλ‘ μ§μ κ²μνλ κ²(μ μλν¨)μμ μ‘°μ§ λ²μ ν¨ν€μ§ μ΄λ¦μΌλ‘ GitHub ν¨ν€μ§λ₯Ό μ¬μ©νλ κ²μΌλ‘ μ ννλ €κ³ ν©λλ€.
package.json
μμ ν¨ν€μ§ μ΄λ¦μ λ³κ²½νκ³ νμν publishConfig
μ
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
κ·Έλ¦¬κ³ λ¬Έμμ λ°λΌ NPM_TOKEN
NODE_AUTH_TOKEN
λμ
β success Wrote authentication token string to /home/runner/.npmrc
β warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
λ GitHubμ λ΄ μ μ₯μ Secretsμ μ€μ λμ΄ μμ΅λλ€.
μ‘μ μ€μ μ λ€μκ³Ό κ°μ΅λλ€.
name: Publish
on:
push:
branches: [main]
jobs:
release:
runs-on: ubuntu-latest
# this check needs to be in place to prevent a publish loop with auto and github actions
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout<strong i="19">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare repository
run: git fetch --unshallow --tags
- name: Use Node.js 12.x
uses: actions/setup-node<strong i="20">@v1</strong>
with:
node-version: 12.x
- name: Cache node modules
uses: actions/cache<strong i="21">@v2</strong>
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
restore-keys: |
node-modules-${{ hashFiles('package-lock.json') }}
- name: Create release
env
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm ci
npm run build
npm run release
GitHub ν¨ν€μ§ λ μ§μ€νΈλ¦¬μ κ²μνκΈ° μν μΆκ° μ§μΉ¨ μ΄ μμ΅λλ€.
NPMμ λ μ΄μ κ²μνμ§ μμΌλ―λ‘ GitHub ν ν°μ μ¬μ©νμ¬ κ²μν΄μΌ ν©λλ€.
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
λ€μμ μλνλ μ μ₯μμ μ μ λλ€.
@hipstersmoothie λ§μ λμμ μ£Όμ μ κ°μ¬ν©λλ€. μλ μμ μ μ€μ ν μ΄νλ‘ λ¬Έμκ° μ λ°μ΄νΈλ κ²μ 보μμ§λ§ μ¬μ ν λͺ¨λ λ¨κ³κ° ν¬ν¨λμ΄ μμ§ μμ κ² κ°μ΅λλ€. λ΄ λ Έλ μ€μ μλ λ€μ μ€μ μΆκ°ν΄μΌ νμ΅λλ€(λ°λͺ¨ 리ν¬μ§ν 리μ μμ).
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
λλ λν μ¬μ ν NPM_TOKEN κ²½κ³ λ©μμ§λ₯Ό λ³΄κ³ μμμ΅λλ€. νκ²½ λΉλ°λ‘ λ€μ μΆκ°νλ©΄ λ¬Έμ κ° ν΄κ²°λ κ²μΌλ‘ 보μ λλ€.
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
λ§μ§λ§μΌλ‘, μ΄ λͺ¨λ μ€μ μ ν΅ν΄ PRμ λ³ν©νκ³ μλμΌλ‘ μμ μ μννμ¬ μ ν¨ν€μ§λ₯Ό μΆμνκ³ λ²μ /λ³κ²½ λ‘κ·Έλ₯Ό μ λ°μ΄νΈν μ μμμ΅λλ€ π
κ·Έλ¬λ λλ μ£Όμλ₯Ό λ§μ§μ 거리면μ λΆκΈ° 보νΈλ₯Ό λΉνμ±ννμ΅λλ€. λ€μ νμ±ννλ©΄ Autoκ° λ²μ μ
λ°μ΄νΈλ₯Ό 컀λ°νλ €κ³ ν λλ§λ€ μ€ν¨νλ μλ‘μ΄ μ€λ₯κ° λ°μνμ΅λλ€. λ€μκ³Ό κ°μ΄ κΈ°λ³Έ GITHUB_SECRET
λμ μ κ°μΈ GitHub ν ν°μ μΆκ°νκ³ μ΄λ₯Ό λΉλ°λ‘ μ°Έμ‘°νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
μ΅μ μ ν΄κ²°μ± μ μλ κ² κ°μΌλ―λ‘ λꡬλ μ§ λ λμ ν΄κ²°μ± μ μκ³ μλ€λ©΄ κ°μ¬νκ² μ΅λλ€. λλ λ¬Έμλ₯Ό μ¬κΈ°μμ μ λ°μ΄νΈν΄μΌ ν μλ μμ΅λλ€. https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
λλ κ·Έ λ¬Έμλ₯Ό κ°μ νκΈ° μν΄ PRμ λ§λ€μμ΅λλ€. #1828μ κ²ν νμκ² μ΅λκΉ?
κ²ν , λͺ κ°μ§ μμ μ μμ΄μ§λ§ λͺ¨λ μ’μ 보μ λλ€ βΊ λͺ¨λ λμμ λ€μ νλ² κ°μ¬λ립λλ€
:rocket: v10.16.8
μμ λ°νλ λ¬Έμ :rocket: