diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..639673e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,44 @@ +# ๐Ÿš€ Pull Request + +## ๐Ÿ“ PR ์œ ํ˜• + + + +- [ ] ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (Feature) +- [ ] ๋ฒ„๊ทธ ์ˆ˜์ • (Bug Fix) +- [ ] ์ฝ”๋“œ ๊ฐœ์„  (Refactoring) +- [ ] ๋ฌธ์„œ ์ž‘์—… (Docs) +- [ ] ํ™˜๊ฒฝ ์„ค์ • (Configuration) +- [ ] ์ตœ์ข… ์ ๊ฒ€ (Release Check) + +--- + +## ๐Ÿ” ๋ณ€๊ฒฝ ์‚ฌํ•ญ + + + +--- + +## ๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท + + + +--- + +## ๐Ÿšง ๊ด€๋ จ ์ด์Šˆ + + + +--- + +## ๐Ÿ› ๏ธ ์ตœ์ข… ๋ฐฐํฌ ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ + +- [ ] ์ฃผ์š” ๊ธฐ๋Šฅ ๋™์ž‘ ํ™•์ธ +- [ ] ๋นŒ๋“œ/๋ฐฐํฌ ํ™˜๊ฒฝ ์ ๊ฒ€ +- [ ] ๋ฌธ์„œ/์„ค์ • ๊ฒ€ํ†  + +--- + +## โœ… ์ตœ์ข… ๋ฐฐํฌ ์ ๊ฒ€ ๊ฒฐ๊ณผ + + diff --git a/.github/workflows/frontend-ci.yml b/.github/workflows/frontend-ci.yml new file mode 100644 index 0000000..3795726 --- /dev/null +++ b/.github/workflows/frontend-ci.yml @@ -0,0 +1,86 @@ +name: Frontend-CI + +on: + pull_request: + branches: [main, develop] + push: + branches: + - "Feature/*" + - "Fix/*" + - "Chore/*" + - "Docs/*" + - "Test/*" + - "Refactor/*" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + NODE_VERSION: "20.19.2" + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - uses: pnpm/action-setup@v4 + with: + run_install: false + - name: Get pnpm store directory + id: pnpm-cache + run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v4 + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: ${{ runner.os }}-pnpm- + - run: pnpm install --frozen-lockfile + - run: pnpm run lint --if-present + + test: + runs-on: ubuntu-latest + needs: lint + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - uses: pnpm/action-setup@v4 + with: + run_install: false + - name: Get pnpm store directory + id: pnpm-cache + run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v4 + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: ${{ runner.os }}-pnpm- + - run: pnpm install --frozen-lockfile + - run: pnpm run test --if-present -- --ci + + build: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - uses: pnpm/action-setup@v4 + with: + run_install: false + - name: Get pnpm store directory + id: pnpm-cache + run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + - uses: actions/cache@v4 + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: ${{ runner.os }}-pnpm- + - run: pnpm install --frozen-lockfile + - run: pnpm run build