Хотя мы рекомендуем использовать один из бесплатных веб-сайтов, доступных для мониторинга покрытия кода в процессе непрерывной интеграции, ниже приведён пример того, как можно включить покрытие кода в процесс непрерывной интеграции с помощью GitHub actions и создать отчёт о покрытии кода без использования этих сервисов.
Этот файл yaml
будет запускать тесты на нескольких конфигурациях системы, но создаст отчёт о покрытии кода только для одной из них. Затем он создаст значок покрытия кода и добавит его в файл README.
Файл следует поместить в каталог .github/workflows
вашего репозитория:
name: Go # Название рабочего процесса, которое появится на Github
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Позволяет запустить этот рабочий процесс вручную из вкладки Actions
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
go: [1.16, 1.17]
steps:
- uses: actions/checkout@v2
- name: Настройка Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
- name: Сборка
run: go install
- name: Тест
run: |
go test -v -cover ./... -coverprofile coverage.out -coverpkg ./...
go tool cover -func coverage.out -o coverage.out # Заменяет coverage.out анализом coverage.out
- name: Значок покрытия Go
uses: tj-actions/coverage-badge-go@v1
if: ${{ runner.os == 'Linux' && matrix.go == '1.17' }} # Запускает это только на одном из сборок ci.
with:
green: 80
filename: coverage.out
- uses: stefanzweifel/git-auto-commit-action@v4
id: auto-commit-action
with:
commit_message: Применить значок покрытия кода
skip_fetch: true
skip_checkout: true
file_pattern: ./README.md
- name: Отправить изменения
if: steps.auto-commit-action.outputs.changes_detected == 'true'
uses: ad-m/github-push-action@master
with:
github_token: ${{ github.token }}
branch: ${{ github.ref }}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )