Добавлены настройки linguist для правильного определения языка разраб… #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# MIT License | |
# Copyright (C) 2022 Artem Kuznetsov <ArKuznetsov@gmail.com> and contributors | |
# All rights reserved. | |
name: Контроль качества | |
# Любой пуш и pr в проекте но с фильтром по основному проекту | |
on: | |
push: | |
branches: | |
- main | |
- master | |
- develop | |
pull_request: | |
branches: | |
- develop | |
env: | |
# отключение безопасности установки, от 2020-10-01 | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
PROJECT_KEY: "xsltlib" | |
jobs: | |
build: | |
if: github.repository == 'arkuznetsov/xsltlib' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [xsltlib] | |
steps: | |
# Загрузка проекта | |
- name: Актуализация | |
uses: actions/checkout@v2 | |
with: | |
# Disabling shadow clone is recomended | |
fetch-depth: 0 | |
# Установка NUnit3 | |
- name: Установка NUnit3 | |
shell: pwsh | |
run: | | |
curl -o "./tools/nuget.exe" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe | |
./tools/nuget.exe restore ./src | |
./tools/nuget.exe install NUnit.ConsoleRunner -Version 3.6.1 -OutputDirectory ./tools | |
# Установка инструментов .NET | |
- name: Установка инструментов .NET | |
run: | | |
dotnet tool update --global dotnet-sonarscanner | |
dotnet tool update --global dotnet-coverage | |
# Извлечение версии пакета | |
- name: Получение packagedef | |
shell: pwsh | |
run: echo "::set-output name=data::$(type ./build/packagedef)\n" | |
id: packagedef_data | |
- name: Извлечение версии пакета | |
uses: actions-ecosystem/action-regex-match@v2 | |
with: | |
text: ${{ steps.packagedef_data.outputs.data }} | |
regex: '.Версия\("((?:\d+\.)+\d+)"\)' | |
id: extract_version | |
# Начало анализа проекта в SonarQube (ветка) | |
- name: Начало анализа проекта в SonarQube (branch) | |
if: github.event_name == 'push' | |
run: dotnet sonarscanner begin | |
/s:${{ github.workspace }}/SonarQube.Analysis.xml | |
/k:${{ env.PROJECT_KEY }} | |
/v:${{ steps.extract_version.outputs.group1 }} | |
/d:sonar.host.url="${{ secrets.SONARQUBE_HOST }}" | |
/d:sonar.login="${{ secrets.SONARQUBE_TOKEN }}" | |
/d:sonar.branch.name="${{ env.BRANCH_NAME }}" | |
/d:sonar.cs.vscoveragexml.reportsPaths=./build/reports/coverage.xml | |
/d:sonar.cs.nunit.reportsPaths=./build/reports/nunit-result.xml | |
# Начало анализа проекта в SonarQube (PR) | |
# https://docs.sonarqube.org/latest/analysis/pull-request/ | |
- name: Начало анализа проекта в SonarQube (pull-request) | |
if: github.event_name == 'pull_request' | |
run: dotnet sonarscanner begin | |
/s:${{ github.workspace }}/SonarQube.Analysis.xml | |
/k:${{ env.PROJECT_KEY }} | |
/d:sonar.host.url="${{ secrets.SONARQUBE_HOST }}" | |
/d:sonar.login="${{ secrets.SONARQUBE_TOKEN }}" | |
/d:sonar.branch.name="${{ env.BRANCH_NAME }}" | |
/d:sonar.pullrequest.key=${{ github.event.pull_request.number }} | |
/d:sonar.pullrequest.branch=${{ github.event.pull_request.head.ref }} | |
/d:sonar.pullrequest.base=${{ github.event.pull_request.base.ref }} | |
/d:sonar.scm.revision=${{ github.event.pull_request.head.sha }} | |
/d:sonar.cs.vscoveragexml.reportsPaths=./build/reports/coverage.xml | |
/d:sonar.cs.nunit.reportsPaths=./build/reports/nunit-result.xml | |
# Сборка компоненты для тестирования | |
- name: Сборка компоненты для тестирования | |
run: | | |
dotnet restore ./src | |
dotnet build ./src --configuration Debug | |
# Запуск тестов NUnit3 | |
- name: Запуск тестов NUnit3 и сборка покрытия | |
run: | | |
mkdir "./build/reports" | |
dotnet-coverage collect -o ./build/reports/coverage.xml -f xml "./tools/NUnit.ConsoleRunner.3.6.1/tools/nunit3-console.exe ./src/NUnitTests/bin/Debug/net452/NUnitTests.dll --result=./build/reports/nunit-result.xml" | |
# Завершение анализа проекта в SonarQube | |
- name: Завершение анализа проекта в SonarQube | |
run: dotnet sonarscanner end /d:sonar.login="${{ secrets.SONARQUBE_TOKEN }}" |