Skip to content

Commit

Permalink
Merge pull request #15 from autumn-library/coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 authored Jan 27, 2025
2 parents 77c301a + 75e1929 commit ec3daf0
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 10 deletions.
56 changes: 48 additions & 8 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,28 @@ on:
test_script_path:
required: false
type: string
default: ./tasks/coverage.os
default: ./tasks/coverage.os
additional_oscript_packages:
description: Package list to install, space separated.
type: string
required: false
default: ""
coveralls:
required: false
type: boolean
default: false
secrets:
SONAR_TOKEN:
required: false

jobs:
sonar:
if: (github.repository == ${{ inputs.github_repository }} ) && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name)

test:
runs-on: ubuntu-latest

steps:
- name: Актуализация
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Вычисление имени ветки
uses: nelonoel/[email protected]

- name: Вычисление версии OneScript
shell: bash
Expand Down Expand Up @@ -72,6 +71,32 @@ jobs:
- name: Запуск тестов
run: oscript ${{ inputs.test_script_path }}

- name: Сохранение артефактов покрытия
uses: actions/upload-artifact@v4
with:
name: coverage
path: out/*overage*.xml
if-no-files-found: ignore

sonar:
runs-on: ubuntu-latest
needs: [test]
if: (github.repository == ${{ inputs.github_repository }} ) && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name)
steps:
- name: Актуализация
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Вычисление имени ветки
uses: nelonoel/[email protected]

- name: Скачивание артефактов
uses: actions/download-artifact@v4
with:
name: coverage
path: out

- name: Извлечение версии пакета
shell: bash
run: echo "version=`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -102,3 +127,18 @@ jobs:
-Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }}
-Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }}
-Dsonar.scm.revision=${{ github.event.pull_request.head.sha }}

coveralls:
runs-on: ubuntu-latest
if: inputs.coveralls == true
needs: [test]
steps:
- name: Актуализация
uses: actions/checkout@v4
- name: Скачивание артефактов
uses: actions/download-artifact@v4
with:
name: coverage
path: out
- name: Отправка отчёта о покрытии в Coveralls
uses: coverallsapp/github-action@v2
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ jobs:

Данный пример запустит задачу на трех операционных системах с тремя разными версиями oscript - 1.8.4 (так как она указана в packagedef), последней релизной версии и последней ночной сборке.

## Контроль качества (SonarQube)
## Контроль качества (SonarQube + Coveralls)

Сборочная линия для выполнения анализа качества кода с помощью SonarQube. Поддерживается запуск из ветки, из pull request и ручной запуск из информации о конкретном workflow. Анализ pull request из форков пока не поддерживается.
Сборочная линия для выполнения анализа качества кода с помощью SonarQube и отправки данных о покрытии в [coveralls](https://coveralls.io). Поддерживается запуск из ветки, из pull request и ручной запуск из информации о конкретном workflow. Анализ pull request из форков для задачи SonarQube пока не поддерживается.

Файл workflow: [https://github.com/autumn-library/workflows/blob/main/.github/workflows/sonar.yml](https://github.com/autumn-library/workflows/blob/main/.github/workflows/sonar.yml)

Expand All @@ -103,6 +103,7 @@ jobs:
| test_script_path | Путь к скрипту запуска тестов | ./tasks/coverage.os |
| additional_oscript_packages | Список дополнительных пакетов oscript для установки, разделенный пробелами | |
| sonar_host_url | URL сервера SonarQube | https://sonar.openbsl.ru |
| coveralls | Флаг отправки результатов покрытия на портал [coveralls](https://coveralls.io) | false |

Секреты:

Expand Down Expand Up @@ -131,6 +132,28 @@ jobs:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
```

### Интеграция с Coveralls

Перед выполнением первого анализа добавьте свой проект в сервис [coveralls](https://coveralls.io). Выставьте флаг `coveralls: true` и дождитесь результатов анализа.

```yaml
name: Контроль качества
on:
push:
pull_request:
workflow_dispatch:
jobs:
sonar:
uses: autumn-library/workflows/.github/workflows/sonar.yml@v1
with:
github_repository: autumn-library/annotations # change me!
coveralls: true
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
```

## Публикация релиза

Сборочная линия для сборки и публикации пакета библиотеки в артефакты и хаб пакетов https://hub.oscript.io. Поддерживается автоматический запуск при публикации GitHub Release и ручной запуск из информации о конкретном workflow.
Expand Down

0 comments on commit ec3daf0

Please sign in to comment.