๐Ÿ’ป DEV/GitHub

[Github Actions] ํ”„๋กœ์ ํŠธ์— github Actions ์ ์šฉ

Rising Oneโ˜… 2025. 3. 10. 14:07
728x90
๋ฐ˜์‘ํ˜•
SMALL
Git ๋Œ€ํ‘œ์ด๋ฏธ์ง€

 

์ ‘๊ทผ (์š”์•ฝ)

์—…๋ฌด์—์„œ Web Service ๋ฐฐํฌ ๋ฐฉ์‹์— ๋ณ€ํ™”(→ Github Actions)๋ฅผ ๋„๋ชจํ–ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—๋„ ์ ์šฉํ•˜๊ณ ์ž Nextjs ํ”„๋กœ์ ํŠธ + Github Action์„ ์ ์šฉํ•œ ์ƒ˜ํ”Œ์„ ๊ธฐ๋กํ•œ๋‹ค.

(๊ฐ ๋‹จ๊ณ„๋ฅผ Step๋ณ„๋กœ ์ž‘์„ฑํ•ด๋ณธ๋‹ค.)

 

  0. Create Project (Terminal) → ํ•˜๋‹จ์— ๊ฒŒ์‹œ๊ธ€ ์ฒจ๋ถ€

- ๊ฒฝ๋กœ ์ด๋™

- Project App ์ƒ์„ฑ

- Open Project & Branch ๋ณ€๊ฒฝ (main → master)

- 4. ์›๊ฒฉ์ €์žฅ์†Œ ์ƒ์„ฑ(Web) & Push (๋กœ์ปฌ → ์›๊ฒฉ์ €์žฅ์†Œ) 

 

  1. Github Action ์ ์šฉ

- (Web) Actions > set up a workflow yourself

 


๋ฐฉ๋ฒ•

   1. Github Action ์ ์šฉ

1. (Web) Actions > set up a workflow yourself

 

 

2. root ๊ฒฝ๋กœ์— ./github/workflows/OOO.yml ํŒŒ์ผ์ƒ์„ฑ

 

3. ๊ธฐ๋ณธ Build code ์ž‘์„ฑ
name: Test Build

on:
  push:
    branches:
      - master
      - develop
  pull_request:
    branches:
      - master
      - develop

jobs:
  build:
    runs-on: ubuntu-latest
#   ์ง์ ‘ ์„œ๋ฒ„ ์šด์˜์‹œ (์ž์ฒด ํ˜ธ์ŠคํŒ…)
#   runs-on: action-runner-dev-linux

    steps:
      # Repo ์ฒดํฌ์•„์›ƒ
      - name: checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      # package manager๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๋Š” ๋‹จ๊ณ„
      - name: Detect package manager
        id: detect-package-manager
        run: |
          if [ -f "${{ github.workspace }}/package.json" ]; then
            echo "manager=npm" >> $GITHUB_OUTPUT
            echo "command=ci" >> $GITHUB_OUTPUT
            echo "runner=npx --no-install" >> $GITHUB_OUTPUT
            exit 0
          elif [ -f "${{ github.workspace }}/yarn.lock" ]; then
            echo "manager=yarn" >> $GITHUB_OUTPUT
            echo "command=install" >> $GITHUB_OUTPUT
            echo "runner=yarn" >> $GITHUB_OUTPUT
            exit 0
          else
            echo "Unable to determine package manager" >&2
            exit 1
          fi

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18
#          cache: ${{ steps.detect-package-manager.outputs.manager }}

      - name: Install dependencies
        run: npm install
        # ๋งŒ์ผ, ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ Depth๊ฐ€ ํ•œ ์ธต ๋” ๋“ค์–ด๊ฐ„๋‹ค๋ฉด, ์•„๋ž˜์ฒ˜๋Ÿผ
        # Detect package manager์˜ -f package.json ์ฐพ๋Š” ๊ฒฝ๋กœ ๋˜ํ•œ {{.}}/visualization/package.json 
        # working-directory: ./visualization 

      - name: Run ESLint
        run: npm run lint

# TODO : Jest Test ์ฝ”๋“œ ์ถ”๊ฐ€
#      - name: Run Tests
#        run: npm test

      - name: Build Next.js
        run: npm run build

 

action/checkout@v4 ์•ˆ์ •ํ™”๋ฒ„์ „

4. ๋กœ์ปฌ์ €์žฅ์†Œ master ๋ธŒ๋žœ์น˜์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ pull

 

 

 

 

 

 

[ ์ฐธ๊ณ  ]

[Github] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ Push) 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
LIST