Skip to content
Merged
78 changes: 78 additions & 0 deletions .github/workflows/sonar-qube-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Проверка Sonar

on:
- push
- pull_request_target

jobs:
SonarQualityGate:
name: 'Проверка Sonar'
runs-on: ubuntu-latest
steps:
- name: Извлечение исходников PR
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
uses: actions/checkout@v4
with:
ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target
fetch-depth: 0 # Получение полной истории (все тэги и ветки)

- name: Извлечение исходников ветки ${{ github.ref_name }}
if: github.event_name == 'push'
uses: actions/checkout@v4
with:
fetch-depth: 0 # Получение полной истории (все тэги и ветки)

# Анализ проекта в SonarQube (ветка)
- name: Анализ в SonarQube (${{ github.ref_name }})
if: github.event_name == 'push'
uses: sonarsource/sonarqube-scan-action@v2.3.0
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
LC_ALL: "ru_RU.UTF-8"
with:
args: >
-Dsonar.host.url=https://sonar.openbsl.ru
-Dsonar.branch.name=${{ github.ref_name }}
-Dsonar.projectVersion=${{ steps.extract_version.outputs.version }}
-Dsonar.qualitygate.wait=true
-Dsonar.qualitygate.timeout=300
-Dsonar.sources=./src

# Анализ проекта в SonarQube (PR)
# https://docs.sonarqube.org/latest/analysis/pull-request/
- name: Анализ в SonarQube (pull-request ${{ github.event.number }})
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
uses: sonarsource/sonarqube-scan-action@v2.3.0
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
LC_ALL: "ru_RU.UTF-8"
with:
args: >
-Dsonar.host.url=https://sonar.openbsl.ru
-Dsonar.sources=./src
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }}
-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 }}
-Dsonar.qualitygate.wait=true
-Dsonar.qualitygate.timeout=300

PublishResult:
name: Публикация результата ревью
runs-on: ubuntu-latest
if: github.event_name != 'push' && (success()||failure())
needs: SonarQualityGate

steps:
- name: Извлечение исходников
uses: actions/checkout@v4
with:
fetch-depth: 0 # Получение полной истории (все тэги и ветки)

- name: Публикация результата проверки PR
uses: 1CDevFlow/sonar-review-action@main
with:
sonar_branch_plugin: true
env:
GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }}

14 changes: 14 additions & 0 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# must be unique in a given SonarQube instance
sonar.projectKey=pivo-cli

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
# sonar.sources=./src/Инструменты/src
sonar.inclusions=**/*.bsl, **/*.os

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
sonar.qualitygate.wait=true
sonar.host.url=https://sonar.openbsl.ru
22 changes: 13 additions & 9 deletions src/cli/Классы/КомандаBuildRelease.os
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@
&Опция(Имя = "ServerDBWeb", Описание = "Сервер опубликованной базы")
Перем ServerDBWeb;

&Опция(Имя = "Extensions", Описание = "Расширения проекта")
&ТСтрока
&ПоУмолчанию("")
Перем Extensions;

&Опция(Имя = "BranchRelease", Описание = "Ветка релиза")
&ПоУмолчанию("main")
Перем BranchRelease;
Expand Down Expand Up @@ -136,11 +141,6 @@
Логгер.Информация(" Конец: Компиляция обработок");

КомандыКластер.РазблокироватьБазу();

Логгер.Информация(" Старт: Перенос обработок в базу");
КомандыКонфигуратор.ОбновитьОбработкиВКонфигурации();
Логгер.Информация(" Конец: Перенос обработок в базу");


Логгер.Информация(" Старт: Перенос обработок в каталог релиза");
файловыеОперации.КопироватьСодержимоеКаталога(ПутьОбработокРепо, КаталогОбработокРелиза);
Expand All @@ -156,10 +156,13 @@
КонецЕсли;

Логгер.Информация(" Старт: Перенос расширений в каталог релиза ");
//TODO Переделать на список
ИмяРасширения = "Основное";
ПутьКРасширению = СтрШаблон("%1/%2.cfe", КаталогРасширенийРелиза, ИмяРасширения);
КомандыКонфигуратор.ВыгрузитьРасширениеВФайл(ПутьКРасширению, ИмяРасширения);

СписокРасширений = СтрРазделить(Extensions, ";");
Для Каждого ИмяРасширения Из СписокРасширений Цикл
ПутьКРасширению = СтрШаблон("%1/%2.cfe", КаталогРасширенийРелиза, ИмяРасширения);
КомандыКонфигуратор.ВыгрузитьРасширениеВФайл(ПутьКРасширению, ИмяРасширения);
Логгер.Информация(СтрШаблон("Перенесено расширение в каталог релиза: %1", ИмяРасширения));
КонецЦикла;

Логгер.Информация(" Конец: Перенос расширений в каталог релиза");

Expand Down Expand Up @@ -207,6 +210,7 @@
НастройкиВыполнения.Вставить("UserStorage", UserStorage);
НастройкиВыполнения.Вставить("NameDBWeb", NameDBWeb);
НастройкиВыполнения.Вставить("ServerDBWeb", ServerDBWeb);
НастройкиВыполнения.Вставить("Extensions", Extensions);
НастройкиВыполнения.Вставить("BranchRelease", BranchRelease);

МенеджерОпций.УстановитьПараметры(НастройкиВыполнения);
Expand Down