Skip to content

akalmyk/diffcover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Usage:

GitLab CI: (non-blocking job, using *.cover.txt from tests job)

test-coverage:
  image: golang:1.22.12
  stage: tests
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
  allow_failure: true
  needs:
    - tests
  before_script:
    - go mod download
    - go install github.com/akalmyk/diffcover/cmd/diffcover@vlatest
  script:
    - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    - git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
    - git diff origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME...origin/$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME > diff.patch
    - "echo mode: set > coverage.out"
    - cat *.cover.txt | grep -v mode:|sort -r|awk '!seen[$1]++' >> coverage.out
    - diffcover diff.patch coverage.out diff_coverage.out 80 || true
    - if [ ! -f diff_coverage.out ]; then echo "diff_coverage.out not found" >&2; exit 1; fi
    - go tool cover -html=diff_coverage.out -o $CI_PROJECT_DIR/diff_coverage.html
    - if [ ! -f diff_coverage.html ]; then echo "diff_coverage.html not found" >&2; exit 1; fi
    - if [ ! -f diffcover.failed ]; then exit 0; else echo "❌ diff coverage < 80%"; exit 1; fi
  artifacts:
    when: always
    paths:
      - diff_coverage.html
    expire_in: 1 week

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages