[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ

2025. 4. 25. 11:08ยทโš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
https://app.codecov.io/

 

codecov์— ๋กœ๊ทธ์ธํ•ด์„œ ๊นƒํ—ˆ๋ธŒ์™€ ์—ฐ๋™ํ•˜๋ฉด
๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

(๋‚˜๋Š” ํผ๋ธ”๋ฆญ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ง„ํ–‰ํ•˜์—ฌ ํ”„๋ผ์ด๋น— ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.)

 

์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ 
๋‚˜๋Š” GitHub Actions๋ฅผ ์ด์šฉํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์…‹์—… ์˜ต์…˜์€ GitHub Options๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

 

 

์•„๋งˆ codecov๋ฅผ ์ ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€
์Šคํ”„๋ง์—์„œ jacoco๋ฅผ ์ด๋ฏธ ์ ์šฉํ–ˆ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ๋‹ค์Œ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค.

 

 

ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›์•„ codecov์™€ ๋‚ด ๋ ˆํฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.
๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์˜ Setting > Security > Secrets and variables > Actions์—์„œ
๋˜‘๊ฐ™์ด ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

๋„ˆ๋ฌด๋‚˜๋„ ์นœ์ ˆํ•˜๊ฒŒ
workflow ํŒŒ์ผ์— ์–ด๋–ป๊ฒŒ ์ ์–ด์•ผํ• ์ง€ ๊ทธ๋Œ€๋กœ ์•Œ๋ ค์ค€๋‹ค.

 

 

.github/workflows/test.yml์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด
์ž‘์„ฑํ•˜์—ฌ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— PR์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค
ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ํ™•์ธํ•˜๋„๋ก ์„ค์ •ํ•˜์˜€๋‹ค.

 

name: CI workflow

on:
  pull_request:
    branches:
      - main

jobs:
  # job์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ id
  My-Test-Job:
    runs-on: ubuntu-latest
    steps:
      - name: Run tests
        run: | # ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด ๋ฌธ์žฅ ์ž‘์„ฑ ๊ฐ€๋Šฅ
          ./gradlew test
      - name: Upload coverage reports to Codecov
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}

 

์ด๋Ÿฐ ์„ค์ •์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ Action ํƒญ์—์„œ ์ถ”๊ฐ€ํ•œ๋‹ค.
'Java with Gradle'๋กœ ํ–ˆ๋‹ค.

 

๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ๋ฉ”์ธ์œผ๋กœ PR์„ ์ƒ์„ฑํ•˜์˜€๋‹ค.

์บก์ณ๋ฅผ ๋†“์ณค์ง€๋งŒ ๊ทธ๋Ÿผ ํ•ด๋‹น ์•ก์…˜์ด ๋น™๊ธ€๋น™๊ธ€ ๋Œ์•„๊ฐ€๋ฉฐ ์ง„ํ–‰๋œ๋‹ค.

 

๋๋‚˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

'Upload coverage reports to Codecov' ์ž‘์—…์„ ๋ณด๋ฉด
๋ฌด์—‡์ด ๋งŽ์ด ์ง„ํ–‰๋œ ๊ฒƒ ๊ฐ™์€๋ฐ ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š๋‹ค.

 

 

์ด๋•Œ๋Š” codecov ์•ฑ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ดˆ๊ธฐ ํ™”๋ฉด์—์„œ ์•ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‚˜๋Š” ์›ํ•˜๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—๋งŒ ์„ค์น˜ํ–ˆ๋‹ค.

 

 

๋‹ค์‹œ ์•ก์…˜์œผ๋กœ ๋Œ์•„์˜ค๋ฉด
์ž‘์—… ํ•˜๋‹จ์— ๋งํฌ๊ฐ€ ์žˆ๋‹ค.

 

ํด๋ฆญํ•˜๋ฉด ๋‚ด ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ˜„์žฌ ๋‚ด ์ปค๋ฒ„๋ฆฌ์ง€๋Š” 50.55ํผ์„ผํŠธ์ด๋‹ค.

 

 

codecov ์•ฑ์„ ์ด์šฉํ•˜๋ฉด
PR์— ์ธก์ • ๊ฒฐ๊ณผ๋ฅผ ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ค€๋‹ค๊ณ  ํ•œ๋‹ค.

์Œ ๊ทผ๋ฐ ๋‚œ ์ด๊ฒŒ ์ฒซ PR์ด๋ผ ๊ทธ๋Ÿฐ์ง€ ์•ˆ ์•Œ๋ ค์ค€๋‹ค.

 

 

์ด์ œ ๋ฑƒ์ง€๋ฅผ ๋‹ฌ์•„์ฃผ์ž.

codecov ์‚ฌ์ดํŠธ์—์„œ ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ Configure > Badges & Graphs๋ฅผ ํ™•์ธํ•œ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ๋งˆํฌ๋‹ค์šด์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ฆฌ๋“œ๋ฏธ์— ๋ถ™์—ฌ๋†“์œผ๋ฉด ๋œ๋‹ค.

 

 

์งœ์ž”~

์ถ”๊ฐ€๋กœ ๋‹ฌ ์ˆ˜ ์žˆ๋Š” ๋ฑƒ์ง€๊ฐ€ ํ•˜๋‚˜ ๋” ์žˆ๋‹ค.

 

ํ•ด๋‹น ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์šฐ์ธก์—์„œ ...์„ ํด๋ฆญํ•˜๋ฉด
'Create status badge'๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

ํด๋ฆญํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํ™”๋ฉด์ด ๋œจ๋Š”๋ฐ

 

์–˜๋„ ๋ฆฌ๋“œ๋ฏธ์— ๋ถ™์—ฌ๋†“์œผ๋ฉด

 

 

์ด๋ ‡๊ฒŒ CI ์›Œํฌํ”Œ๋กœ์šฐ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ ํ†ต๊ณผ์™€ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฑƒ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค~!

 

 

์ฐธ๊ณ ์ž๋ฃŒ

  • https://shanepark.tistory.com/457
๋ฐ˜์‘ํ˜•

'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ  (3) 2025.06.02
๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ  (0) 2025.05.14
CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ  (1) 2025.04.15
์›น API: SOAP API, SOAP๊ณผ REST์˜ ์ฐจ์ด  (1) 2025.03.03
์›น ์„œ๋ฒ„(Web Server) vs WAS(Web Application Server) ๊ฐœ๋… ์ดํ•ด์™€ ์ฐจ์ด ๋น„๊ต feat. Tomcat  (0) 2025.02.17
'โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • โš™๏ธ ํ”„๋กœ์„ธ์Šค(Process) / ์Šค๋ ˆ๋“œ(Thread) ๊ฐœ๋… ์ •๋ฆฌ
  • ๋””๋ฒ„๊น…์˜ ์ค‘์š”์„ฑ
  • CI/CD ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ
  • ์›น API: SOAP API, SOAP๊ณผ REST์˜ ์ฐจ์ด
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (46) N
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๐ŸŒฟSpring (15)
      • โ˜•Java (8) N
      • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (3)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
      • โš™๏ธ CS & ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (13) N
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (0)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    docker
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    GIT
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๋ฐฐํฌ
    ์„œ๋ฒ„
    Spring
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๊ฐœ๋ฐœ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Java
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Spring Security
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[๊นƒํ—ˆ๋ธŒ] Codecov ์ ์šฉํ•˜์—ฌ PR์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ ๋ฑƒ์ง€ ๋‹ฌ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”