Значок покрытия в Gitlab CI с покрытием Python всегда неизвестен - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь показать покрытие значок для проекта Python в частной установке Gitlab CE (v11.8.6), используя cover.py для Python. Однако на значке всегда написано unknown.

Это соответствующая работа в моем .gitlab-ci.yaml файле:

coverage:
    stage: test
    before_script:
        - pip3.6 install coverage
        - mkdir -p public
    script:
        - coverage run --source=tk_skills_service setup.py test
        - coverage report | tee public/coverage.txt
    artifacts:
        paths:
            - public/coverage.txt
    coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'

Я ожидал, что на значке будет отображаться фактическое покрытие по этому URL, так что это то, что я ввел в настройках проекта в General / Badges:

http://<privategitlaburl>/%{project_path}/badges/%{default_branch}/coverage.svg?job=coverage

Я прочитал эти инструкции , используя страницы Gitlab. Однако я не хочу использовать страницы только для этой цели, и я имею дело с проектом Python.

В соответствии с примером в настройках CI / CD и в этой записи , регулярное выражение в записи coverage должно работать. что я мог бы подтвердить, попробовав это локально:

$ grep -P "TOTAL\s+\d+\s+\d+\s+(\d+%)" public/coverage.txt
TOTAL                                           289     53    82%

Я также попробовал то же регулярное выражение в поле Test coverage parsing в настройках проекта в CI/CD / Pipeline settings, но значок, показанный на той же странице, продолжает отображать unknown.

Документация мне не совсем понятна, так как она не описывает всю процедуру. понятно, как использовать значок после его создания, и есть руководство для публикации отчета о покрытии на страницах, но, похоже, нет ясного пути извлечения оценки для отображения значка.

Должен ли я использовать запись coverage в моем файле .gitlab-ci.yaml или указать регулярное выражение в настройках конвейера?

В любом случае, должен ли Gitlab CI обновлять значок покрытия на основании этого или мне нужно использовать дополнительные инструменты, такие как значок покрытия , чтобы сделать это?

Где указывается извлеченный показатель покрытия; Как я могу узнать, работает ли мое регулярное выражение?

...