๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋ก ํŠธ์—”๋“œ(Front-end)/Tools

Github Actions ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

by ์ฝ”์ž๋Š” ์•Œ๋ฐ”์ƒ 2025. 5. 26.

https://ldd6cr-adness.tistory.com/309

 

Github Actions๋ž€ ๋ญ˜๊นŒ

๋ชฉ์ฐจ1. Github Actions๋ž€?2. ์ž‘์„ฑ ์˜ˆ์‹œ3. ๊ตฌ์„ฑ ์š”์†Œ ์ž์„ธํžˆ ๋ณด๊ธฐ 3-1. Workflow 3-2. Event 3-3. Job 3-4. Runner 3-5. Step 3-6. Action1. Github Actions๋ž€?Github์—์„œ ์ œ๊ณตํ•˜๋Š” ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž๋™ํ™”ํ•  ์ˆ˜

ldd6cr-adness.tistory.com

 

๋ชฉ์ฐจ

1. ์›Œํฌํ”Œ๋กœ์šฐ ํŒŒ์ผ ์ƒ์„ฑ

2. ESLint ๋ฐ Prettier ํ†ตํ•ฉ

3. ๋นŒ๋“œ ์„ฑ๊ณตํ•œ ๋ชจ์Šต


1. ์›Œํฌํ”Œ๋กœ์šฐ ํŒŒ์ผ ์ƒ์„ฑ

๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— .github/workflows/ci.yml ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ๋‹ค.

// ci.yml

name: CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: "18"

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test -- --coverage

 

 

github ์ €์žฅ์†Œ์— ์œ„ ๋‚ด์šฉ์„ push ํ•˜๋ฉด Actions ํƒญ์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์งœ์ž” ๋นŒ๋“œ ์‹คํŒจ!

 

 

ํ˜„์žฌ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ด์œ ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ค‘๊ฐ„์— No tests found, exiting with code 1์ด๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์›๋ž˜๋ผ๋ฉด ํ…Œ์ŠคํŠธ ํŒŒ์ผ์„ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋งž์ง€๋งŒ ๊ทธ๊ฑด ๋‹ค๋ฅธ ์‹ค์Šต์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๊ณ  ์—ฌ๊ธฐ์„œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์ž

 

--passWithNoTests์˜ต์…˜์€ ํ…Œ์ŠคํŠธํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด๋‹ค.

 

 


2. ESLint ๋ฐ Prettier ํ†ตํ•ฉ

์ฝ”๋“œ ํ’ˆ์งˆ ์œ ์ง€๋ฅผ ์œ„ํ•ด ESLint์™€ Prettier๋„ ์›Œํฌํ”Œ๋กœ์šฐ์— ํ†ตํ•ฉํ•ด๋ณด์ž.

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ช‡ ์ค„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๋˜ํ•œ package.json์—๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•œ๋‹ค.

 

์ด๊ฑธ ์•ˆํ•˜๋ฉด npm error Missing script: "lint"์ด๋Ÿฐ ์—๋Ÿฌ๋กœ ๋นŒ๋“œ๊ฐ€ ์•ˆ๋œ๋‹ค.

 


3. ๋นŒ๋“œ ์„ฑ๊ณตํ•œ ๋ชจ์Šต

์ด๋Ÿฐ์‹์œผ๋กœ ๋‚ด๊ฐ€ pushํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 

์ฐธ๊ณ