Skip to content

Cum să trimiți coverage la fiecare commit în Codacy — Ghid pas cu pas

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să trimiți coverage la fiecare commit în Codacy. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Trimiți coverage la fiecare commit în Codacy pentru a urmări evoluția acoperirii codului în timp real. La fiecare commit, pipeline-ul CI rulează testele, generează raportul și îl trimite automat.

Step-by-Step Fix

1. Configurare în GitHub Actions

name: Coverage
on: [push]
jobs:
  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npm test -- --coverage
      - name: Upload to Codacy
        run: |
          bash <(curl -Ls https://coverage.codacy.com/get.sh) report \
            -r coverage/lcov.info
        env:
          CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}

2. Configurare în Buddy pipeline

- pipeline: "Coverage Check"
  trigger_mode: ON_EVERY_PUSH
  stages:
    - stage: "Test & Coverage"
      actions:
        - type: build
          image: node:20
          commands:
            - npm ci
            - npm test -- --coverage
            - bash <(curl -Ls https://coverage.codacy.com/get.sh) report \
                -r coverage/lcov.info
          env:
            CODACY_PROJECT_TOKEN: "${vars.CODACY_PROJECT_TOKEN}"

3. Verificare în Codacy

După upload, intră în Codacy > Coverage > vezi graficul cu evoluția commit cu commit.

Common Mistakes

  1. Token neconfigurat în CI -- token-ul trebuie adăugat ca secret în pipeline
  2. Commit asociat greșit -- raportul se leagă de commit-ul HEAD; verifică checkout-ul
  3. Teste eșuate -- nu trimite raport dacă testele eșuează
  4. Branch neprotejat -- coverage pe branch-uri tranzitorii poluează statisticile
  5. Raport trimis de două ori -- ultimul upload suprascrie precedentul pentru același commit

Practice Exercise

Configurează un workflow GitHub Actions care rulează la fiecare push, rulează pytest cu coverage și trimite raportul XML la Codacy.

FAQ

Pot vedea coverage-ul pentru fiecare commit în interfața Codacy?

Da, în tab-ul Coverage poți vedea un grafic cu evoluția și procentul exact pentru fiecare commit. |||Ce se întâmplă dacă nu trimit coverage la un commit? Codacy va afișa ultimul raport disponibil. Fără raport nou, linia graficului rămâne neschimbată. ||| Pot trimite coverage doar pentru commit-urile pe main? Da, filtrează în CI: if: github.ref == 'refs/heads/main'.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro