Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding GA #10

Merged
merged 12 commits into from
Oct 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# MIT License
# Copyright (C) 2020 Tymko Oleg <[email protected]> and contributors
# All rights reserved.

name: Контроль качества
# Любой пуш и pr в проекте но с фильтром по основному проекту
on: [push, pull_request]
jobs:
build:
if: github.repository == 'arkuznetsov/yabr.os'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.4.0']

steps:
# Загрузка проекта
- name: Актуализация
uses: actions/checkout@v2

# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
- name: Извлечение имени текущей ветки
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/[email protected]
with:
version: ${{ matrix.oscript_version }}

# Установка зависимостей пакета
- name: Установка зависимостей
run: |
opm install opm
opm install --dev

# Запуск тестов и сбор покрытия кода
- name: Покрытие кода
run: oscript ./tasks/coverage.os

- name: Извлечение версии пакета
shell: bash
run: echo "##[set-output name=version;]`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`"
id: extract_version

- name: Установка Sonar-scanner
uses: warchant/setup-sonar-scanner@v1

# Анализ проекта в SonarQube (ветка)
- name: Анализ в SonarQube (branch)
if: github.event_name == 'push'
run: sonar-scanner
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
-Dsonar.projectVersion=${{ steps.extract_version.outputs.version }}

# Анализ проекта в SonarQube (PR)
# https://docs.sonarqube.org/latest/analysis/pull-request/
- name: Анализ в SonarQube (pull-request)
if: github.event_name == 'pull_request'
run: sonar-scanner
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
-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 }}
59 changes: 59 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# MIT License
# Copyright (C) 2020 Tymko Oleg <[email protected]> and contributors
# All rights reserved.

name: Подготовка релиза и публикация в хабе
# Только события создания и изменения релиза
on:
release:
types: [published, edited]

env:
PACKAGE_MASK: yabr-*.ospx

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.4.0']

steps:
# Загрузка проекта
- name: Актуализация
uses: actions/checkout@v2

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/[email protected]
with:
version: ${{ matrix.oscript_version }}

# Установка зависимостей пакета
- name: Установка зависимостей
run: |
opm install opm
opm install

- name: Сборка пакета
run: opm build

- name: Заливка артифактов
uses: actions/upload-artifact@v2
with:
name: package.zip
path: ./${{ env.PACKAGE_MASK }}

- name: Заливка в релиз
uses: AButler/[email protected]
with:
files: ./${{ env.PACKAGE_MASK }}
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Публикация в hub.oscript.io
shell: bash
run: opm push -f ./${{ env.PACKAGE_MASK }} --token ${{ env.TOKEN }} -c stable
env:
TOKEN: ${{ secrets.OSHUB_TOKEN }}
37 changes: 37 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# MIT License
# Copyright (C) 2020 Tymko Oleg <[email protected]> and contributors
# All rights reserved.

name: Тестирование
# Любой пуш и pr в проекте
on: [push, pull_request]

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.4.0']

steps:
# Загрузка проекта
- name: Актуализация
uses: actions/checkout@v2

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/[email protected]
with:
version: ${{ matrix.oscript_version }}

# Установка зависимостей пакета
- name: Установка зависимостей
run: |
opm install opm
opm install --dev

# Задача тестирования, в результате ожидается успешное выполнение
- name: Тестирование
run: oscript ./tasks/test.os
6 changes: 5 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
Описание.Имя("yabr")
.Версия("0.6.1")
.Версия("0.6.2")
.ВерсияСреды("1.0.21")
.ЗависитОт("logos", "1.2.1")
.ЗависитОт("delegate", "0.2.0")
.ЗависитОт("reflector", "0.4.0")
.ЗависитОт("cli", "0.9.10")
.РазработкаЗависитОт("fs")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("1bdd")
.РазработкаЗависитОт("asserts")
.ВключитьФайл("src")
.ВключитьФайл("lib.config")
.ВключитьФайл("README.md")
Expand Down
4 changes: 2 additions & 2 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# must be unique in a given SonarQube instance
sonar.projectKey=yabr.os
sonar.projectKey=yabr

# this is the name displayed in the SonarQube UI
sonar.projectName=yabr.os
Expand All @@ -17,4 +17,4 @@ sonar.sourceEncoding=UTF-8

sonar.coverageReportPaths=coverage/genericCoverage.xml

sonar.testExecutionReportPaths=test-reports/tests.xml
# sonar.testExecutionReportPaths=test-reports/tests.xml
24 changes: 24 additions & 0 deletions src/Классы/МенеджерОбработкиДанных.os
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,10 @@
//
Процедура ПродолжениеОбработкиДанных(Знач Данные, Знач ИдОбработчика) Экспорт

Если Не ЗначениеЗаполнено(АктивныеОбработчики) Тогда
Возврат;
КонецЕсли;

ОписаниеОбработчика = АктивныеОбработчики.Получить(ИдОбработчика);

Лог.Отладка("[%1]: Продолжение обработки результатов ""%2""", ТипЗнч(ЭтотОбъект), ОписаниеОбработчика.ИмяОбработки);
Expand Down Expand Up @@ -236,6 +240,10 @@
//
Процедура ЗавершениеОбработкиДанных(Знач ИдОбработчика) Экспорт

Если Не ЗначениеЗаполнено(АктивныеОбработчики) Тогда
Возврат;
КонецЕсли;

ОписаниеОбработчика = АктивныеОбработчики.Получить(ИдОбработчика);

Лог.Отладка("[%1]: Завершение обработки результатов ""%2""", ТипЗнч(ЭтотОбъект), ОписаниеОбработчика.ИмяОбработки);
Expand Down Expand Up @@ -651,3 +659,19 @@
КонецФункции // МенеджерОбработкиДанных.ЭтоWindows()

#КонецОбласти // СлужебныеПроцедурыИФункции

#Область ОбработчикиСобытий

// Процедура - обработчик события "ПриСозданииОбъекта"
//
// BSLLS:UnusedLocalMethod-off
Процедура ПриСозданииОбъекта()

Лог = ПараметрыПриложения.Лог();

КонецПроцедуры // ПриСозданииОбъекта()
// BSLLS:UnusedLocalMethod-on

#КонецОбласти // ОбработчикиСобытий

АктивныеОбработчики = Новый Соответствие();
3 changes: 3 additions & 0 deletions src/Классы/ЧтениеСкобкоФайла.os
Original file line number Diff line number Diff line change
Expand Up @@ -846,6 +846,9 @@

Если Элемент.Уровень <= МинУровеньЗаписи Тогда
Элемент.Родитель = Неопределено;
КонецЕсли;

Если Элемент.Уровень < МинУровеньЗаписи Тогда
Элемент.Значения = Неопределено;
РодительскийЭлемент.Значения[Элемент.Индекс] = Неопределено;
КонецЕсли;
Expand Down