Skip to content

feat: ๋žœ๋”ฉ ํŽ˜์ด์ง€(์ž„์‹œ์ €์žฅ) #14

feat: ๋žœ๋”ฉ ํŽ˜์ด์ง€(์ž„์‹œ์ €์žฅ)

feat: ๋žœ๋”ฉ ํŽ˜์ด์ง€(์ž„์‹œ์ €์žฅ) #14

Workflow file for this run

name: Preview # ์›Œํฌํ”Œ๋กœ์šฐ ์ด๋ฆ„
on:
pull_request: # ํŠน์ • ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰
branches: ["main", "dev"] # main๊ณผ dev ๋ธŒ๋žœ์น˜์—์„œ PR ์ƒ์„ฑ ์‹œ ์‹คํ–‰
permissions: # GitHub Actions์˜ ๊ถŒํ•œ ์„ค์ •
contents: write # ์ฝ˜ํ…์ธ ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๊ถŒํ•œ
pages: write # GitHub Pages ๋ฐฐํฌ ๊ถŒํ•œ
deployments: write # ๋ฐฐํฌ ๊ถŒํ•œ
id-token: write # OIDC ํ† ํฐ ์ƒ์„ฑ ๊ถŒํ•œ
issues: write # ์ด์Šˆ ์ƒ์„ฑ ๋ฐ ํŽธ์ง‘ ๊ถŒํ•œ
pull-requests: write # PR ์ƒ์„ฑ ๋ฐ ํŽธ์ง‘ ๊ถŒํ•œ
jobs:
storybook-preview:
runs-on: ubuntu-20.04 # ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ํ™˜๊ฒฝ (Ubuntu 20.04)
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
steps:
- name: ์ €์žฅ์†Œ ์ฒดํฌ์•„์›ƒ
uses: actions/checkout@v3 # GitHub Actions์˜ ๊ณต์‹ ์ฒดํฌ์•„์›ƒ ์•ก์…˜
with:
fetch-depth: 0 # ์ „์ฒด Git ๊ธฐ๋ก์„ ๊ฐ€์ ธ์˜ด (CI ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ๊ฐ’์€ 1)
- name: ์บ์‹œ ์ข…์†์„ฑ
id: cache
uses: actions/cache@v3 # ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์†๋„ ๊ฐœ์„ 
with:
path: "**/node_modules" # ์บ์‹œ ๋Œ€์ƒ ๊ฒฝ๋กœ
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}-storybook # ์บ์‹œ ํ‚ค ์„ค์ •
- name: ์ข…์†์„ฑ ์„ค์น˜
if: steps.cache.outputs.cache-hit != 'true' # ์บ์‹œ๊ฐ€ ์—†์„ ๋•Œ๋งŒ ์‹คํ–‰
run: yarn install # Yarn์œผ๋กœ ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ์„ค์น˜
- name: Chromatic์— ๊ฒŒ์‹œ
id: chromatic
uses: chromaui/action@v1 # Chromatic์˜ GitHub Action
with:
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ฐธ์กฐ
token: ${{ secrets.GITHUB_TOKEN }} # GitHub ์ธ์ฆ ํ† ํฐ
onlyChanged: true # ๋ณ€๊ฒฝ๋œ ์Šคํ† ๋ฆฌ๋งŒ ์—…๋กœ๋“œ
autoAcceptChanges: true # Chromatic์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ž๋™ ์Šน์ธ
- name: ํ˜„์žฌ ์‹œ๊ฐ„ ๊ฐ€์ ธ์˜ค๊ธฐ
uses: josStorer/get-current-time@v2 # ํ˜„์žฌ ์‹œ๊ฐ„ ๊ฐ€์ ธ์˜ค๋Š” ์•ก์…˜
id: current-time
with:
format: "YYYY๋…„ MM์›” DD์ผ HH์‹œ mm๋ถ„ ss์ดˆ" # ์‹œ๊ฐ„ ํ˜•์‹
utcOffset: "+09:00" # ํ•œ๊ตญ ์‹œ๊ฐ„๋Œ€๋กœ ์„ค์ • (UTC+9)
outputs: # ๋‹ค์Œ Job์—์„œ ์‚ฌ์šฉํ•  ์ถœ๋ ฅ๊ฐ’ ์„ค์ •
storybook_url: ${{ steps.chromatic.outputs.storybookUrl }} # Chromatic URL
currnent_time: ${{ steps.current-time.outputs.formattedTime }} # ํฌ๋งท๋œ ํ˜„์žฌ ์‹œ๊ฐ„
github-bot-storybook:
runs-on: ubuntu-latest # ์ตœ์‹  Ubuntu ํ™˜๊ฒฝ
needs: [storybook-preview] # `storybook-preview` Job์ด ์™„๋ฃŒ๋œ ํ›„ ์‹คํ–‰
steps:
- name: PR ์ฝ”๋ฉ˜ํŠธ ๋‚จ๊ธฐ๊ธฐ
uses: thollander/actions-comment-pull-request@v2 # PR์— ๋Œ“๊ธ€ ๋‚จ๊ธฐ๋Š” ์•ก์…˜
with:
comment_tag: ${{github.event.number}}-storybook # ๋Œ“๊ธ€ ํƒœ๊ทธ๋กœ ์ค‘๋ณต ๋ฐฉ์ง€
message: |
๐Ÿ’„ Storybook: ${{ needs.storybook-preview.outputs.storybook_url }} # Chromatic์—์„œ ์ƒ์„ฑ๋œ Storybook URL
๐Ÿ•– Update: ${{ needs.storybook-preview.outputs.currnent_time }} # ํ˜„์žฌ ์‹œ๊ฐ„